版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
基于Matplotlib模块的绘图
- Matplotlib是Python最著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图,也可以作为绘图控件方便地嵌入GUI应用程序中。
- 可以内嵌Latex语言(排版用的语言)
导入所需模块
#导入模块matplotlib.pyplot
import matplotlib.pyplot as plt
#在notebook中显示所绘图像
%matplotlib inline
import numpy as np
最简单的图
x = np.linspace(0.05,10,1000) #在0.05~10之间等间隔取1000个数字
y = np.sin(x)
plt.plot(x,y)
结果:
>>>help(plt.plot)
三个重要指标
[color],[marker],[linestyle]
- marker:点绘制的线中点绘制的形状(如三角点,实心菱形···)
- line Styles:线绘制的线图(实线,虚线···)
x = np.linspace(1,10,10)
y = x**2
plt.plot(x,y,color = '#ff3456',marker = '*',linestyle = "--")
结果:
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'b*') #'b'是蓝色的点
结果:
marker 类型
字符 | 类型 |
---|---|
‘_’ | 实线 |
‘–’ | 虚线 |
‘-.’ | 虚点线 |
‘:’ | 点线 |
‘.’ | 点 |
‘,’ | 像素点 |
‘o’ | 圆点 |
‘v’ | 下三角点 |
‘^’ | 上三角点 |
‘<’ | 左三角点 |
‘>’ | 右三角点 |
‘1’ | 下三叉点 |
‘2’ | 上三叉点 |
‘3’ | 左三叉点 |
‘4’ | 右三叉点 |
‘s’ | 正方点 |
‘p’ | 五角点 |
‘*’ | 星型点 |
‘h’ | 六角形点1 |
‘H’ | 六角形点2 |
‘+’ | 加加号 |
‘x’ | 乘号点 |
‘D’ | 实心菱形点 |
‘d’ | 瘦菱形点 |
‘_’ | 横线点 |
颜色
import seaborn
seaborn.xkcd_rgb
-------------------------------------
{'acid green': '#8ffe09',
'adobe': '#bd6c48',
'algae': '#54ac68',
'algae green': '#21c36f',
'almost black': '#070d0d',
'amber': '#feb308',
'amethyst': '#9b5fc0',
'apple': '#6ecb3c',
'apple green': '#76cd26',
'apricot': '#ffb16d',
'aqua': '#13eac9',
'aqua blue': '#02d8e9',
。。。。。。
plt.plot()其他常用参数
- linewidth:定义线条的宽度,可去任意实数
- alpha:表示透明度,一般取值[0,1]之间
- drawstyle:定义描点的方式
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'b*-',linewidth = 5,alpha = 0.3,drawstyle = 'steps')
结果:
常用图像设置命令
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.title() #设置图像标题
plt.xlim() #设置x轴显示范围
plt.ylim() #设置y轴显示范围
plt.xlabel() #设置x轴名称
plt.ylabel() #设置y轴名称
plt.grid() #设置坐标网格线
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 10, alpha = 0.3)
plt.title('我的matplotlib图')
结果:
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*--',linewidth = 1, alpha = 0.8)
plt.title('我的matplotlib图')
plt.xlim(2,6)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.grid(linestyle = '-',color = 'pink')
结果:
常用设置图像的命令
plt.axhline():绘制平行于x轴的水平参考线
plt.axvline():绘制平行于y轴的水平参考线
plt.axhspan():绘制垂直于y轴的参考区域
plt.axvspan():绘制垂直于x轴的参考区域
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 3, alpha = 0.3)
plt.title('我的matplotlib图')
plt.grid(ls = '-',c = 'c', linewidth = 1,alpha = 0.6)
plt.axvline(6,c = 'r', lw = 5, ls = '-.')
结果:
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 3, alpha = 0.3)
plt.title('我的matplotlib图')
plt.grid(ls = '-',c = 'c', linewidth = 1,alpha = 0.6)
plt.axhline(0.25,c = 'r', lw = 5, ls = '-.')
结果:
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 3, alpha = 0.3)
plt.title('我的matplotlib图')
plt.grid(ls = '-',c = 'c', linewidth = 1,alpha = 0.6)
plt.axvline(6,c = 'r', lw = 5, ls = '-.')
plt.axhspan(-0.25,0.25,facecolor = 'yellow',alpha = 0.3)
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 6, alpha = 0.4, drawstyle = 'steps')
plt.title('我的matplotlib图')
plt.grid(ls = ':',c = 'pink')
plt.axhspan(-0.25,0.25,facecolor = 'yellow',alpha = 0.6)
plt.axvline(6,c = 'b',alpha = 0.5, lw = 6, ls = '-.')
plt.axvspan(4,8,facecolor='c', alpha = 0.3)
结果:
常用设置图像的命令
plt.legend(): #标志不同图形的文本标签图例
plt.xticks(): #设置x轴的标签名称
plt.yticks(): #设置y轴的标签的名称
plt.text(): #添加图形内容细节的无指向型注释文本
plt.annotate(): #添加图形内容细节的指向型注释文本
plt.legend()
x = np.linspace(0,10,1000)
y1 = np.cos(x)
y2 = np.sin(x)
plt.plot(x,y1,'-',c = 'orange',label = 'The first')
plt.plot(x,y2,'-',c = 'c',label = 'The second')
plt.legend(loc = 'upper left')
结果:
plt.xticks()与plt.yticks()
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 6, alpha = 0.4, drawstyle = 'steps',label = 'y = sin(x)')
plt.title('我的matplotlib图')
plt.grid(ls = ':',c = 'pink')
plt.axhspan(-0.25,0.25,facecolor = 'yellow',alpha = 0.6)
plt.axvline(6,c = 'b',alpha = 0.5, lw = 6, ls = '-.')
plt.axvspan(4,8,facecolor='c', alpha = 0.3)
plt.legend(loc='upper right')
plt.yticks([-1,-0.5,0,0.5,1],['A','B','C','D','E'])
结果:
plt.text()
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 6, alpha = 0.4, drawstyle = 'steps',label = 'y = sin(x)')
plt.title('我的matplotlib图')
plt.grid(ls = ':',c = 'pink')
plt.axhspan(-0.25,0.25,facecolor = 'yellow',alpha = 0.6)
plt.axvline(6,c = 'b',alpha = 0.5, lw = 6, ls = '-.')
plt.axvspan(4,8,facecolor='c', alpha = 0.3)
plt.legend(loc='upper right')
plt.text(1.5,0,'y = cos(x)',weight = 'bold', color = 'b')
plt.annotate()
x = np.linspace(0,10,10)
y = np.cos(x)
plt.plot(x,y,'r*-',linewidth = 6, alpha = 0.4, drawstyle = 'steps',label = 'y = sin(x)')
plt.title('我的matplotlib图')
plt.grid(ls = ':',c = 'pink')
plt.axhspan(-0.25,0.25,facecolor = 'yellow',alpha = 0.6)
plt.axvline(6,c = 'b',alpha = 0.5, lw = 6, ls = '-.')
plt.axvspan(4,8,facecolor='c', alpha = 0.3)
plt.legend(loc='upper right')
plt.text(1.5,0,'y = cos(x)',weight = 'bold', color = 'b')
plt.annotate("最大值", xy = (0,1), xytext = (0.8,1), arrowprops = dict(arrowstyle = '->'))
结果:
plt常见的二维图形绘制命令
plt.bar() #绘制柱状图
plt.barh() #绘制条形图
plt.hist() #绘制直方图
plt.pie() #绘制饼图
plt.polar() #绘制极线图
plt.scatter() #绘制散点图或者气泡图
plt.stem() #绘制棉棒图
plt.boxplot() #绘制箱线图
plt.errorbar() #绘制误差棒图