1,matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。本文将以例子的形式分析matplot中支持的,分析中常用的几种图。其中包括填充图、散点图(scatter plots)、. 条形图(bar plots)、等高线图(contour plots)、 点阵图和3D图:
2,了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。pyplot模块虽然用法简单,但不适合在较大的应用程序中使用
后面我会对常见基本图做下整理,和一些图型的高阶使用方法。
简单线性图的创建
import numpy as np from matplotlib import pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False a =[1,2,3,4] b = [5,23,7,26] x = np.arange(2, 22) y = 0.3 * x + 5 plt.title("Matplotlib test-测试") plt.xlabel("X-轴") plt.ylabel("Y-轴") plt.plot(a, b,label ='a-b对比',color='g') plt.plot(x, y,label ='x-y对比',color='y') plt.savefig('test.png') plt.legend() plt.show() 1,两个轴数据都是一对一数据,我们可以通过数组,字典建立对应,**而大多数我们都是在清洗数据格式** 2,可以通过循环创建多图表图形 3,plt.legend() 显示label信息在图片上 4,代表颜色,可以用颜色首字母代替color='g'
图形:
调用形式一般为:
plot([x], y, [fmt], data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
[fmt]是一个字符串,用于定义图的基本属性:颜色(color)、点型(marker)、线型(linestyle)
a:color:线条颜色
plt.plot(a, b,label ='a-b对比',color='b') 这里颜色color 可以是: b -蓝色,g-绿色,r -红色,c-cyan (青绿色),m -magenta(洋红色),y- 黄色,k-黑色,w-白色,0.8 -灰度值字符,#0008000 -GRB某颜色
RGB颜色查询对照表
http://www.papocket.com/patool/rgb.html
b:marker图形标记
plt.plot(a, b,label ='a-b对比',color='#FF009A',marker = 'h')
. - 点标记,,-像素标记,o-实心圈标记,v-倒三角标记,^ -上三角标记,>左三角标记,< -右三角标记,1-下花三角标记,2-上花三角标记,3-左花三角标记,4-右花三角标记,s-实心方形标记,p-实心五角标记,*-星形标记,h-竖六边形标记,H-横六边形标记,±十字标记,x-x标记,D-菱形标记,|-垂直线标记,d-瘦菱形标记
c:linestyle: 线条样式
plt.plot(a, b,label ='a-b对比',color='#FF009A',marker = 'h',linestyle =''''''''
无线条,也可以做点图
遇到问题:
1,保存图片时候,本地打开为空白图片
此处save 应在show前面,否则保存的只是show展示创建的一个空白图片。
plt.savefig('test.png') plt.show()
2,解决图形中中文的显示
解决方法有很多,我这里建议用最简单的方法完成就好了
from pylab import mpl
mpl.rcParams[‘font.sans-serif’] = [‘SimHei’]
mpl.rcParams[‘axes.unicode_minus’] = False
from matplotlib import pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False a =[1,2,3,4] b = [5,23,7,26] plt.title("Matplotlib test-测试") plt.xlabel("X-轴") plt.ylabel("Y-轴") plt.plot(a, b,label ='a-b对比',color='g') plt.legend() plt.show()