目录
一.Matplotlib库的使用
1.plot()函数
2.savefig()函数
3.绘图区域subplot()
二.pylot的中文显示
1.pylot的中文显示:第一种方法
(1)rcParams的属性
(2)中文字体的种类
2.pyplot的中文显示:第二种方法
三.pyplot的文本显示
四.pyplot的子绘图区域
Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库
导入:
import matplotlib.pyplot as plt
是pyplot中的一个功能强大的函数,plot()函数可以对一般的简单数据进行绘制
直接使用plot()画图的语法:
plt.plot(x,y,fmt='xxx',linestyle=,marker=,color=,linewidth=,markersize=,label=)
·linestyle:表示线段的样式,参数为字符串
linestyle参数 | 线型 |
'-' | 实线 |
'--' | 虚线 |
'-.' | 点划线 |
':' | 点虚线 |
' ' | 无线 |
·linewidth:线的粗细,参数形式:数值
·marker:点的样式,参数形式:字符串
marker | 标记点 |
'.' | 点 |
',' | 像素 |
'^' 'v' '>' '<' | 上下左右的三角形 |
'1' '2' '3' '4' | 上下左右的三叉线 |
'o' | 圆形 |
's' 'D' | 方形 |
'p' | 五角形 |
'h' 'H' |
六边形 |
'*' | 五角星 |
'+' 'x' | 十字交叉 |
'-' | 横线 |
' | ' |
·markersize:点的大小,参数形式:数值
·color:调节线条和点的颜色,参数形式:字符串
字符串 | 颜色 |
'r' | 红色 |
'g' | 绿色 |
'b' | 蓝色 |
'y' | 黄色 |
'c' | 青色 |
'm' | 品红 |
'k' | 黑色 |
'w' | 白色 |
·lable:legend文字
savefig()函数用于保存当前图形为png,jpg格式的图像,默认PNG格式,可以通过dpi修改输出的质量
Matplotlib库测试
ylable()和xlable()函数数值y轴和x轴标签
plt.show():无标签显示
plt.legend():为图大标签
代码实例:
import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel("Grade")
plt.legend()
plt.show()
绘图:
注:当plt.plot()只有一个输入列表时,参数被当做y轴,以x轴为索引自动生成
代码:
import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.ylabel("Grade")
plt.legend("Grade")
plt.savefig('test',dpi=600)
plt.show()
图:
注:plt.plot(x,y)当有两个参数时,按照x轴和y轴的顺序来绘制数据点
subplot是一个将多个图像画到一个平面上的工具,参数n,m类似于矩阵的n行m列,第三个参数表示绘图在第几张图
使用方法:
subplot(m,n,p)或者subplot(m n p)
绘图实例:
import matplotlib.pyplot as plt
import numpy as np
def f(t):
return np.exp(-t) * np.cos(2 * np.pi * t)
a=np.arange(0.0,5.0,0.02)
plt.subplot(211) #2张图,绘第一张图
plt.plot(a,f(a))
plt.subplot(2,1,2) #绘第二张
plt.plot((3,5,2,6),'r--')
plt.show()
效果图:
pyplot并不默认中文显示,需要rcParams修改字体
例如:
属性 | 说明 |
'font.family' | 用于显示字体的名称 |
'font.style' | 字体风格,正常‘normal’或斜体‘italic’ |
'font.size' | 字体大小,整数字号或者'large','x-small' |
中文字体 | 说明 |
'SimHei' | 中文黑体 |
'Kaiti' | 中文楷体 |
'LiSu' | 中文隶书 |
'FangSong' | 中文仿宋 |
'YouYuan' | 中文幼圆 |
'STSong' | 华文宋体 |
代码实例:
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.size']=10
a=np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间')
plt.ylabel('纵轴:振幅')
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()
效果图:
在有中文输出的地方,增加一个属性:fontproperties
代码实例:
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=10)
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=10)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()
效果图:
函数 | 说明 |
plt.xlable() | 对x轴增加文本标签 |
plt.ylable() | 对y轴增加文本标签 |
plt.title() | 对图形整体增加文本标签 |
plt.text() | 在任意位置增加文本 |
plt.annotate() | 在图形中增加带箭头的注解 |
代码实例:
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=10,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=10,color='blue')
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.title(r'正弦函数实例$y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
plt.text(2,1,r'$\mu=100$',fontsize=15)
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()
效果图:
·GridSpec:表示创建的网格区域,参数表示矩阵的n行m列
·CurSpec:表示选中的网格区域
·colspan:表示横向合并网格,参数表示合并的个数
·rowspan:表示纵向合并网格,参数表示合并的个数