Matplotlib是一款可以数据可视化的库。由各种可视化的类构成。
matplotlib.pyplot是绘制各类可视化图形的命令子库。
通常别名为plt 命令如import matplotlib.pyplot as plt
Matplotlib通常和Numpy结合使用。
Matplotlib
使用
import matplotlib.pyplot as plt #导入
#当有两个以上参数时,按照X轴和Y轴顺序绘制数据点
plt.plot([0,2,4,6,8,10],[6,5,2,9,3,1])#以列表或数组的形式
plt.ylabel("hello view") #y轴 纵坐标的名字
plt.xlabel("time") #x轴
#将图片储存为文件
plt.savefig("demo01", dpi=600) #默认PNG格式 dpi修改输出的质量
plt.show()#数据的可视化的展示效果
简单的表示没有添加更多的效果展示图。
几个函数的介绍
pyplot.plot()函数
plt.plot(x, y, format_string, **kwargs)
x: X轴数据,列表或数组,可选
y: Y轴数据,列表或数组
format_string: 控制曲线的格式字符串
**kwargs: 第二组或更多(x,y,format_string)
当绘制多条曲线,各虚线的x不能省略
format_string控制曲线的格式字符串,可选由颜色字符,风格字符,标记字符
- 颜色字符
'b' 蓝色
'g' 绿色
'r' 红色
'c' 青绿色
'm' 洋红色
'y' 黄色
'k' 黑色
'w' 白色
'#006000' 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
a = np.arange(10)
#控制曲线的样式
plt.plot(a,a*1.5,'-', a,a*2.5,'r--1', a, a*3.5, '*' ,a,a*4.5,'b-',a,a*5.5,'m:o')
plt.show()
**kwargs:为第二组或更多(x,y,format_string)
color:控制颜色,color='green'
linestyle:线条风格, linestyle='dashed'
marker:标记风格, marker='*'
markerfacecolor:标记颜色, markerfacecolor='blue'
markersize:标记尺寸, markesize='30'
pyplot中文显示和属性方法
pyplot默认不支持中文,使用rcParams修改字体
import matplotlib.pyplot as plt
import matplotlib
#显示中文 SimHei是黑体
matplotlib.rcParams['font.family'] = 'SimHei'
plt.plot([1,4,5,7,9,8,6,4,2])
plt.ylabel('纵轴y')
plt.xlabel('横轴x')
plt.title('这是随机的函数',fontproperties='FangSong',fontsize='20') #标题 并设定字体样式
plt.text(4,8.5,'x=4时取最大值',fontsize=10)
#plt.axis([-1,10,-1,10]) 可以设定xy轴的大小范围
plt.grid(True) #开启网格线
plt.show()
rcParams属性
'font.family' 用于显示字体名字
'font.style' 字体风格,正常'normal'或斜体 'italic'
'font.size' 字体大小,整数字号或者 'large'、'x-small'
中文字体的种类
rcParams['font.family']=' '
SimHei 中文黑体
Kaiti 中文楷体
LiSu 中文隶属
FangSong 中文仿宋
YouYuan 中文幼圆
STSong 华文仿宋
pyplot文本显示函数
plt.xlable() 对x轴增加文本标签
plt.ylable() 对y轴增加文本标签
plt.title() 在图形整体增加文本标签
plt.text() 在任意位置增加文本
plt.annotate() 在图形中任意位置增加带箭头的注解
pyplot的绘图区域
plt.subplot2grid()
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
设定网格,选中网格,确定选中行列区域数量,编号从0开始
plt.subplot2grid((3,3),(1,0),colspan=2)
在多个区域绘制图
from math import pi
import numpy as np
import matplotlib.pyplot as plt
def Fnn(t):#构建一个函数
return np.exp(-t) * np.cos(2*np.pi*t)
a = np.arange(0.0, 5.0, 0.02)
plt.subplot(221) #区域位置
plt.plot(a, Fnn(a))
plt.subplot(222)
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.subplot(223)
plt.plot(a, Fnn(a))
plt.subplot(224)
plt.plot(a, np.cos(2*np.pi*a), 'r--')
plt.show()
print(a)
pyplot基础图表函数
- 函数
plt.plot(x,y,fmt,...) 绘制一个坐标图
plt.boxplot(data, notch, position) 绘制一个箱型图
plt.bar(left, height, width, bottom) 绘制一个条形图
plt.barth(width, bottom, left, height) 绘制一个横向条形图
plt.polar(theta, r) 绘制极坐标图
plt.pie(data, explode) 绘制饼图
plt.psd(x,NFFT=256,pad_to,Fs) 绘制功率谱密度图
plt.specgram(x, NFFT=256, Fs) 绘制谱图
plt.cohere(x,y,NFFT=256, Fs) 绘制X-Y的相关性函数
plt.scatter(x,y) 绘制散点图,x和y长度相同
plt.step(x,y,where) 绘制步阶图
plt.hist(x,bins,normed) 绘制直方图
plt.contour(X,Y,Z,N) 绘制等值图
plt.vlines() 绘制垂直图
plt.stem(x,y,linefmt,markerfmt) 绘制柴火图
plt.plot_data() 绘制数据日期
散点图的绘制
import numpy as np
import matplotlib.pyplot as plt
fig,ax= plt.subplots()
ax.plot(10*np.random.randn(100), 10*np.random.randn(100), 'rv')
ax.set_title('points')
plt.show()
饼图的绘制
import matplotlib.pyplot as plt
labels = 'dogs','cats','pigs','mouse'
sizes = [15, 30, 45, 10]
explode = (0, 0.1 ,0 ,0.1)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',shadow=False,startangle=90)
plt.axis('equal')
plt.show()