目录
(一)plt.plot(x,y,format_string,**kwargs)
(2)指定fontproperties、fontsize、fontcolor
Matplotlib库
Python的优秀数据可视化库。
效果展示:http://matplotlib.org/gallery/html
Matplotlib库由各种可视化类构成,内部结构复杂,受matlab启发。
Matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。
而我们仅需要通过pyplot就可以使用matplotlib中所有可视化类,因此这是我们重点使用的。
Pyplot
(一)plt.plot(x,y,format_string,**kwargs)
- x:x轴数据,列表或数组,可选。
- y:y轴数据,列表或数组。
- format_string:控制曲线的格式字符串,由颜色、风格、标记字符组成,可选。
- **kwargs:第二组或者更多(x,y,format_string,**kwargs),即一图多线。当绘制多条曲线,各x不能省。
- 其他:color、linestyle、marker、makerfacecolor、makersize......
(二)中文显示
pyplot不默认支持中文显示,需要rcParams修改字体。
(1)matplotlib.reParams
- font.family:显示字体的名称
- font.style:字体风格,正常‘normal’、斜体'italic'
- font.size:字体大小,整数字号或“small”、“large”
(2)指定fontproperties、fontsize、fontcolor
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
#1、改变全局字体
matplotlib.rcParams['font.family']='STSong' #华文宋体,包括轴标数字
matplotlib.rcParams['font.size']=20 #大小
#2、在用到中文的地方指定字体属性(建议使用)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=20)
plt.xlabel('纵轴:值',fontproperties='SimHei',fontsize=20)
(三)文本显示函数
- plt.xlabel():x轴增加标签
- plt.ylabel():y轴增加文本标签
- plt.title():对图形整体增加文本标签,在正上方。
- plt.text():在任意位置增加文本
- plt.annotate(s, xy=arrow_crd, xytext=text_crd,arrowprops=dict):xy箭头位置;xytext文字位置;arrowprops箭头显示属性
import numpy as np
import matplotlib.pyplot as plt
a = np.arrange(0.0, 5.0, 0.02)
plt.plot(a, np.cos(2*np.pi*a),'r--') #x轴数组、y轴数组、线型为红色虚线
plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green') #微软雅黑15号绿
plt.ylabel('纵轴:振幅', fontproperties='SimHei', fontsize=15) #微软雅黑15号
#$表示Latex格式,增加了文本格式为Latex格式的文本。
plt.title(r'正弦波实例$y=cos(2/pi x)$', fontproperties='SimHei', fontsize=15)
#文本显示在横轴为2纵轴为1的位置,内容,字号
plt.text(4, 1, r'$\mu=100$', fontsize=15)
#xy:箭头位置;xytext:文字位置;arrowprops:箭头显示属性
#facecolor:箭头颜色,箭头与文字距离,箭头粗细
plt.annotate(r'$\mu=100$', xy=(2,1), xytext=(3,1.5),
arrowprops=dict(facecolor='black', shrink=0.1, width=2))
plt.axis([-1, 6, -2, 2])
plt.grid(True)
plt.show()
(四)pyplot的子绘图区域
plt.subplot(nrows,ncols,plot_number)#横轴数量,纵轴数量,子图数,逗号可以省略
作用:指定子图划分/激活某个子图
(1)plt.subplot2grid()
plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
理念:在一个区域设定规则的网格,选中网格,确定选中行列区域数量,编号从零开始。
#将一个区域,分割为3*3基本网格类型,当前被选择的位置是(1,0),然后衍生一列
plt.subplot2grid((3,3),(1,0),colspan=2)
(2)GridSpec类
import matplotlib.gridspec as gridspec
gs = gridspec.GridSpec(3,3)
ax1 = plt.subplot(gs[0,:]) #第一行,所有列
ax2 = plt.subplot(gs[1,:-1]) #第二行,1-2列