#python 3.8.5
matplotlib 库 3.3.0 官网 https://matplotlib.org/
导入库方法,plt作为约定的别名
1 import matplotlib.pyplot as plt
- 基本的plt绘制
1import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei' #通过此属性,让图可以显示中文
plt.plot([0,2,4,6,7,8],[3,4,5,1,5,7]) #黄色为x轴坐标,橙色为y轴值 plt.xlabel('x') #设定x轴标签‘x’ plt.ylabel('y') #设定y轴标签'y' plt.axis([-1,10,-1,50]) #设定x,y轴的起始和结束值 plt.savefig('demo',dpi=400) #图保存函数,命名,和清晰度,dpi越大,越清晰 plt.show() #显示图
1 plt.plot(x, y, format_string, **kwargs)
其中
x : X轴数据,列表或数组,可选
y : Y轴数据,列表或数组
format_string: 控制曲线的格式字符串,可选
| 颜色字符说明 | 颜色字符说明 | |
| 'b' 蓝色 | 'm' 洋红色magenta | |
| 'g' 绿色 | 'y' 黄色 | |
| 'c' 青绿色cyan | 'w' 白色 | |
| '#008000' RGB某颜色 | '0.8' 灰度值字符串 |
|
|
|
|
风格字符 |
说明 | |
| '‐' | 实线 |
|
| '‐‐' | 破折线 | |
| '‐.' | 点划线 | |
| ':' | 虚线 | |
| '' ' ' | 无线条 |
控制曲线的格式字符串,可选
| 标记字符 | 说明 |
plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'x*,a,a*4.5,'b-.') |
||||
| '.' | 点标记 | '1' | 下花三角标记 | 'h' | 竖六边形标记 |
|
| ',' | 像素标记(极小点) | '2' | 上花三角标记 | 'H' | 横六边形标记 | |
| 'o' | 实心圈标记 | '3' | 左花三角标记 | '+' | 十字标记 | |
| 'v' | 倒三角标记 | '4' | 右花三角标记 | 'x' | x标记 | |
| '^' | 上三角标记 | 's' | 实心方形标记 | 'D' | 菱形标记 | |
| '>' | 右三角标记 | 'p' | 实心五角标记 | 'd' | 瘦菱形标记 | |
| '<' | 左三角标记 | '*' | 星形标记 | '|' | 垂直线标记 |
**kwargs : 第二组或更多(x,y,format_string)
color : 控制颜色, color='green'
linestyle : 线条风格, linestyle='dashed'
marker : 标记风格, marker='o'
markerfacecolor: 标记颜色, markerfacecolor='blue'
markersize : 标记尺寸, markersize=20
- plt文本显示函数:
plt.xlabel() 对X轴增加文本标签
plt.ylabel() 对Y轴增加文本标签
plt.title() 对图形整体增加文本标签
plt.text() 在任意位置增加文本
plt.annotate() 在图形中增加带箭头的注解
| plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict) |
|
- plt布局函数
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
|
plt.subplot2grid((3,3), (1,0), colspan=2)
|
|
GridSpec类
import matplotlib.gridspec as gridspec import matplotlib.pyplot as plt gs=gridspec.GridSpec(3,3) ax1=plt.subplot(gs[0,:]) ax2=plt.subplot(gs[1,0:2]) ax3=plt.subplot(gs[1:3,-1]) ax4=plt.subplot(gs[2,0]) ax5=plt.subplot(gs[2,1]) plt.show()

- pyplot基础图函数
| 函数 | 实例 | 效果 |
|
plt.plot(x,y,fmt,…) 绘制一个坐标图 |
||
|
plt.boxplot(data,notch,position) 绘制一个箱形图 |
||
|
plt.bar(left,height,width,bottom) 绘制一个条形图 |
||
|
plt.barh(width,bottom,left,height) 绘制一个横向条形图 |
||
|
plt.polar(theta, r) 绘制极坐标图 |
#绘制极图 import matplotlib.pyplot as plt import numpy as np N=20 theta=np.linspace(0.0,2*np.pi,N,endpoint=False) radii=10*np.random.rand(N) width=np.pi/4*np.random.rand(N) ax=plt.subplot(111,projection='polar') bars=ax.bar(theta,radii,width=width,bottom=1.0) for r,bar in zip(radii,bars): bar.set_facecolor(plt.cm.viridis(r/10.0)) bar.set_alpha(0.5) plt.title('Polar') plt.show() |
|
|
plt.pie(data, explode) 绘制饼图 |
label=['a','b','c','d'] data=[4,8,8,10] explode=(0,0.1,0,0) plt.pie(data, explode=explode,labels=label,autopct='%.1f%%',shadow=False,startangle=90) plt.show() |
|
|
绘制功率谱密度图 |
||
|
plt.specgram(x,NFFT=256,pad_to,F) 绘制谱图 |
||
|
plt.cohere(x,y,NFFT=256,Fs) 绘制X‐Y的相关性函数 |
||
|
plt.scatter(x,y) 绘制散点图,其中,x和y长度相同 |
||
|
plt.step(x,y,where) 绘制步阶图 |
||
|
绘制直方图 |
#绘制饼图 import matplotlib.pyplot as plt import numpy as np np.random.seed(0) mu,sigma=100,6 a=np.random.normal(mu,sigma,size=100) #原始数据 bin=20 #直方的个数 plt.hist(a,bin,histtype='stepfilled',facecolor='b',alpha=0.75) #统计a元素,落在每个bin的个数,alpha为柱子的透明度 plt.title('Histogram') plt.show() |
|
|
plt.contour(X,Y,Z,N) 绘制等值图 |
||
plt.vlines() 绘制垂直图 |
||
|
绘制柴火图 |
||
|
plt.plot_date() 绘制数据日期 |
浙公网安备 33010602011771号