python -- 数据可视化
数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧 密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联。数 据集可以是用一行代码就能表示的小型数字列表,也可以是数以吉字 节的数据。
一丶 安装matplotlib
在Linux系统中安装 matplotlib 如果你使用的是系统自带的Python版本,可使用系统的包管理器来安装matplotlib,为此只需 执行一行命令:
如果你安装了较新的Python版本,就必须安装matplotlib依赖的一些库:
$ sudo apt-get install python3.5-dev python3.5-tk tk-dev $ sudo apt-get install libfreetype6-dev g++
再使用pip来安装matplotlib:
$ pip install --user matplotlib
二丶绘制简单的折线图
1 绘制简单的折线图
[code]import matplotlib.pyplot as plt squares = [1, 4, 9, 16, 25] plt.plot(squares) plt.show()
我们首先导入了模块pyplot,并给它指定了别名plt,以免反复输入pyplot。在线示例大都这 样做,因此这里也这样做。模块pyplot包含很多用于生成图表的函数。 我们创建了一个列表,在其中存储了前述平方数,再将这个列表传递给函数plot(),这个函 数尝试根据这些数字绘制出有意义的图形。plt.show()打开matplotlib查看器,并显示绘制的图形,
如图所示。查看器让你能够缩放和导航图形,另外,单击磁盘图标可将图形保存起来。
2 .修改标签文字和线条粗细
[code]import matplotlib.pyplot as plt squares = [1,4,9,16,25] input_values =[1,2,3,4,5] plt.plot(input_values ,squares,linewidth = 3) # 设置图表标题,并给坐标轴加上标签 plt.title("Square Numbers",fontsize =24) plt.xlabel("Value",fontsize =14) plt.ylabel("Square of Value",fontsize =14) # 设置刻度标记的大小 plt.tick_params(axis = 'both',labelsize =14) plt.show()
参数linewidth 决定了plot()绘制的线条的粗细. 函数title() 给图表指定标 题。在上述代码中,出现了多次的参数fontsize指定了图表中文字的大小。
函数xlabel()和ylabel()让你能够为每条轴设置标题;而函数tick_params()设置刻度 的样式,其中指定的实参将影响x轴和y轴上的刻度(axes='both'),并将刻度标记的字号 设置为14(labelsize=14)。
3 丶使用scatter()绘制散点图并设置其样式
有时候,需要绘制散点图并设置各个数据点的样式。例如,你可能想以一种颜色显示较小的 值,而用另一种颜色显示较大的值。绘制大型数据集时,你还可以对每个点都设置同样的样式, 再使用不同的样式选项重新绘制某些点,以突出它们。 要绘制单个点,可使用函数scatter(),并向它传递一对x和y坐标,它将在指定位置绘制一 个点:
[code]import matplotlib.pyplot as plt #在散点图上的坐标 plt.scatter(2,4) plt.scatter(3,5) plt.scatter(2.5,4.5) plt.show()
下面来设置输出的样式,使其更有趣:添加标题,给轴加上标签,并确保所有文本都大到能 够看清:
[code]import matplotlib.pyplot as plt #在散点图上的坐标 plt.scatter(2,4,s = 200) plt.scatter(3,5,s = 200) plt.scatter(2.5,4.5,s = 200) #,我们调用了scatter(),并使用实参s设置了绘制图形时使用的点的尺寸。 plt.title("Square Numbers",fontsize =24) plt.xlabel("Value",fontsize =14) plt.ylabel("Square of Value",fontsize =14) plt.tick_params(axis = 'both',which ='major',labelsize = 14) plt.show()
4丶使用scatter()绘制一系列点
[code]import matplotlib.pyplot as plt x_values = [1,2,3,4,5] y_values = [1,4,9,16,25] plt.scatter(x_values,y_values,s=100) plt.title("Square Numbers",fontsize =24) plt.xlabel("Value",fontsize =14) plt.ylabel("Square of Value",fontsize =14) plt.tick_params(axis = 'both',labelsize =14) plt.show()
5丶自动计算数据
手工计算列表要包含的值可能效率低下,需要绘制的点很多时尤其如此。可以不必手工计算 包含点坐标的列表,而让Python循环来替我们完成这种计算。下面是绘制1000个点的代码:
[code]import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x**2 for x in x_values] plt.scatter(x_values,y_values,s=10) plt.title("Square Numbers",fontsize =24) plt.xlabel("Value",fontsize =14) plt.ylabel("Square of Value",fontsize =14) plt.tick_params(axis = 'both',labelsize =14) plt.axis([0,1100,0,1100000]) plt.show()
6 删除数据点的轮廓
matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的 数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。要删除数据点的轮廓, 可在调用scatter()时传递实参edgecolor='none':
[code]plt.scatter(x_values, y_values, edgecolor='none', s=40)
7 自定义颜色
要修改数据点的颜色,可向scatter()传递参数c,并将其设置为要使用的颜色的名称,如下 所示:
[code]plt.scatter(x_values, y_values, c='red', edgecolor='none', s=40)
还可以使用RGB颜色模式自定义颜色。要指定自定义颜色,可传递参数c,并将其设置为一个元组,其中包含三个0~1之间的小数值,它们分别表示红色、绿色和蓝色分量。例如,下面 的代码行创建一个由淡蓝色点组成的散点图:
[code]plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='none', s=40)
值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅。
8丶使用颜色映射
颜色映射(colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色 映射用于突出数据的规律,例如,你可能用较浅的颜色来显示较小的值,并使用较深的颜色来显 示较大的值。 模块pyplot内置了一组颜色映射。要使用这些颜色映射,你需要告诉pyplot该如何设置数据 集中每个点的颜色。下面演示了如何根据每个点的y值来设置其颜色:
[code]import matplotlib.pyplot as plt x_values = list(range(1,1001)) y_values = [x**2 for x in x_values] plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40) plt.title("Square Numbers",fontsize =24) plt.xlabel("Value",fontsize =14) plt.ylabel("Square of Value",fontsize =14) plt.tick_params(axis = 'both',labelsize =14) plt.axis([0,1100,0,1100000]) plt.show()
9 丶自动保存图表
要让程序自动将图表保存到文件中,可将对plt.show()的调用替换为对plt.savefig()的 调用:
[code]plt.savefig('squares_plot.png', bbox_inches='tight')
第一个实参指定要以什么样的文件名保存图表,这个文件将存储到scatter_squares.py所在的 目录中;第二个实参指定将图表多余的空白区域裁剪掉。如果要保留图表周围多余的空白区域, 可省略这个实参。
[code]import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D #1. 线形图 y = ax+b x = np.linspace(1,21,20) y = 2*x+3 y2 = np.sin(x) plt.plot(x,y,'m^:') plt.show()
[code]import matplotlib.pyplot as plt import numpy as np n = 1024 x = np.random.normal(0,1,n) #1024个 符合高斯分布 y = np.random.normal(0,1,n) # plt.scatter(x,y,s=np.random.rand(n)*50,c=np.random.rand(n),alpha=0.7) plt.show()
[code]# 画一个3D苹果 import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure()#figsize=(12,8) ax = Axes3D(fig) # 创建实例 x = np.arange(-4,4,0.25) y = np.arange(-4,4,0.25) x,y = np.meshgrid(x,y) # 将x,y 变成矩阵 z = np.sin(np.sqrt(x**2+y**2)) ax.plot_surface(x,y,z,cmap=plt.get_cmap('summer')) #plt.savefig('summer.png', bbox_inches='tight') plt.show()
阅读更多
- Python数据可视化之高斯分布
- Python数据可视化——散点图
- 【python数据挖掘课程】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
- 读书笔记--python数据可视化--007_清理异常值
- python数据分析之数据可视化matplotlib
- python 进行caffe 数据可视化的 “No to_python (by-value)” 问题解决
- Caffe学习系列(13):数据可视化环境(python接口)配置
- python的数据可视化 graphviz 安装配置
- 交互式数据可视化在Python中用Bokeh实现
- 谈谈Python实战数据可视化之matplotlib模块(基础篇)
- Python数据可视化-matplotlib学习1
- Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍
- [置顶] Python数据可视化—matplotlib笔记
- 数据可视化开源系统(python开发)
- python读取excel数据,并可视化展现
- 压力测试监控数据通过python matplotlib进行可视化
- 基于Python的Grib数据可视化
- Python数据分析之可视化一matplotlib(常用方法)
- Windows下使用python绘制caffe中.prototxt网络结构数据可视化