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之间,分别为距leftbottom距离,以及widthheight

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()