matplotlib的宣言:让简单的事情变得简单,让复杂的事情变得可能。
一.推荐几个学习资源
1.python数据分析与展示
2.使用 Matplotlib 绘制 2D 和 3D 图形
二.简单绘制案例
1.由列表生成
默认横坐标为0,1,2,3,⋯⋯
import matplotlib.pyplot as plt
plt.plot([3,4,5,3,2,1])
plt.show()
2.由numpy的arange生成
import matplotlib.pyplot as plt
import numpy as np
#从1到10,但是不包含10,每隔2取一个值,即取1,3,5,7,9
x = np.arange(1,10,2)
y = x ** 2
#第三个参数表示绿色(g)和虚线(--)
plt.plot(x,y,'g--')
plt.show()
import matplotlib.pyplot as plt
import numpy as np
#取0,1,2,3,……,18,19不含20
x= np.arange(20)
plt.plot(x,x**2)
plt.show()
3.有numpy中的linspace生成
import matplotlib.pyplot as plt
import numpy as np
#等距离取1到10之间的数,一共取5个
x = np.linspace(1,10,5)
#第三个参数是线型,红色(r)和点划线(-.)
plt.plot(x,x**2,'r-.')
plt.show()
4.scatter散点图
plt.plot(x,y,'o') #小写的字母o
5.bar柱状图
plt.bar(x,y)
6.文字
plt.title('title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
7.子图
plt.subplots(224) #2行2列第四个位置
plt.axes([0.1,0.1,0.8,0.8]) #参数范围都为0到1之间,分别为距left和bottom距离,以及width和height
8.子图例子
import numpy as np
import matplotlib.pyplot as plt
#等距离取1到10之间的数,一共取20个
x = np.linspace(1,10,20)
fig = plt.figure()
axes=fig.add_axes([0.5,0.1,0.8,0.8])
axes.plot(x,x**2,'ro')
#保存为png文件,显示精度为600
plt.savefig('test',dpi=600)
9.还是子图例子
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-np.pi,np.pi,0.2)
y = np.sin(x)
fig = plt.figure()
#注意这里是subplot,末尾没有s
ax = fig.add_subplot(111)
#这是控制x轴数据范围为-4到4,y轴数据范围为-2到2
plt.axis([-4,4,-2,2])
ax.plot(x,y)
10.带有中文的标签
import matplotlib.pyplot as plt
plt.plot([1,3,5,7],[1,9,25,49],'r')
#有中文时需要加上fontproperties来确定显示的字体,此处是楷体和中文黑体及仿宋,fontsize来确定字体大小
plt.title('$Latex$格式:函数$y=x^2$',fontproperties='Kaiti',fontsize=20)
plt.xlabel('横轴',fontproperties='SimHei',fontsize=20)
plt.ylabel('纵轴',fontproperties='FangSong',fontsize=20)
plt.show()
11.饼图
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs'
sizes=[15,30,45,10]
plt.pie(sizes,labels=labels,autopct='%.2f%%')
plt.show()