Matplotlib 数据可视化
matplotlib库的介绍
数据可视化第三方库
matplotlib.pyplot 是绘制各类可视化图形的命令子库,相当于快捷方式。
import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel("grade")
plt.savefig('test',dpi=600) # 默认PNG文件
plt.show()
plt.plot(x,y,format_string,**kwargs)
format_string:控制曲线的格式字符串 可选
**kwargs:第二组前面的参数或者更多组
- color:控制颜色,color = ‘green’
- linestyle:线条风格,linestyle=‘dashed’
- marker:标记风格,marker = ‘o’
- markerfacecolor:标记颜色,markerfacecolor=‘blue’
- markersize:标记尺寸,markersize=20
由颜色字符、风格字符和标记字符组成
颜色字符 | 说明 | 颜色字符 | 说明 |
---|---|---|---|
‘b’ | 蓝色 | ‘m’ | 洋红色 |
‘g’ | 绿色 | ‘y’ | 黄色 |
‘r’ | 红色 | ‘k’ | 黑色 |
‘c’ | 青绿色 | ‘w’ | 白色 |
‘#008000’ | RGB某种颜色 | ‘0.8’ | 灰度值字符串 |
风格字符 | 说明 |
---|---|
‘-’ | 实线 |
‘–’ | 破折线 |
‘-.’ | 点划线 |
‘:’ | 虚线 |
" " | 无线条 |
标记字符 | 说明 |
---|---|
‘.’ | 点标记 |
‘,’ | 像素标记(极小点) |
‘o’ | 实心圈标记 |
‘v’ | 倒三角标记 |
‘^’ | 上三角标记 |
‘>’ | 右三角标记 |
‘<’ | 左三角标记 |
‘1’ | 下花三角标记 |
‘2’ | 上花三角标记 |
‘3’ | 左花三角标记 |
‘4’ | 右花三角标记 |
‘s’ | 实心方形标记 |
‘p’ | 实心五角标记 |
‘*’ | 星形标记 |
‘h’ | 竖六边形标记 |
‘H’ | 横六边形标记 |
‘+’ | 十字标记 |
‘x’ | x标记 |
‘D’ | 菱形标记 |
‘d’ | 瘦菱形标记 |
‘|’ | 垂直线标记 |
简单的线性图
import matplotlib.pyplot as plt
import numpy as np
data = np.arange(10)
plt.plot(data)
plt.show()
颜色、标记和线类型
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([2,5,3,4,8,9,7,6,1])
plt.plot(x,y,'g--')
# 显式表达
plt.plot(x,y,linestyle = '--',color = 'g')
plt.show()
# 折线图还可以用标记来凸显实际数据点
from numpy.random import randn
plt.plot(randn(30).cumsum(),'ko--')
plt.plot(randn(30).cumsum(),color = 'k',linestyle = 'dashed',marker = 'o')
pyplot 的中文显示
pyplot并不默认支持中文显示,需要rcParams修改字体实现,会改变全局字体
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
属性 | 说明 |
---|---|
‘font.family’ | 用于显示字体的名字 |
‘font.style’ | 字体风格,正常‘nomal’或 斜体‘italic’ |
‘font.size’ | 字体大小,整数字号或者‘large’、‘x-small’ |
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.size']=20
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 numpy as np
import matplotlib.pyplot as plt
a = np.arange(0.0,5.0,0.02)
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=20)
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=20) plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()
pyplot 的文本显示
函数 | 说明 |
---|---|
plt.xlabel() | 对x轴增加文本标签 |
plt.ylabel() | 对y轴增加文本标签 |
plt.title() | 对图形整体增加文本标签 |
plt.text() | 在任意位置增加文本 |
plt.annotate() | 在图形中增加带箭头的注解 |
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green') plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)
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()
plt.annotate(s,xy=arrow_crd,xytext=text_crd,arrowprops