注意;subplot函数的参数不仅仅支持上面的这种形式,还可以将三个整数(10之内的)合并一个整数。例如:plt.subplot(2,2,1)可以写成plt.subplot(221),结果是一样的。
常用的图形实例
Matplotlib可以生成非常多的图形,常用的有:线形图、散点图、饼状图、条形图、直方图。我们来依次了解一下。
线形图——plot
先上代码
import matplotlib.pyplot as plt
plt.plot([1,2,3],[3,6,9], "-r")
plt.plot([1,2,3],[2,4,9], ":g")
plt.show()
代码解析:
1、plot函数的第一个数组是横轴的值,第二个数组是纵轴的值,
2、最后一个参数是由两个字符构成,分别是线条的样式和颜色。前者是红色的直线,后者是绿色的点线,关于样式和颜色的说明请参见plor函数的APIDoc:matplotlib.pyplot.plot
运行结果如下:
散点图——scatter
先上代码:
import matplotlib.pyplot as plt
import numpy as np
plt.subplot(2,1,1)
k = 500
x = np.random.rand(k)
y = np.random.rand(k)
size = np.random.rand(k) * 50 # 生成每个点的大小
colour = np.arctan2(x, y) # 生成每个点的颜色
plt.scatter(x, y, s=size, c=colour)
plt.colorbar() # 添加颜色栏
N = 20
# 参数c表示点的颜色,s是点的大小,alpha是透明度
plt.subplot(2,3,4)
plt.scatter(np.random.rand(N) * 100,
np.random.rand(N) * 100,
c="r", s=100, alpha=0.5) # 红色
plt.subplot(2,3,5)
plt.scatter(np.random.rand(N) * 100,
np.random.rand(N) * 100,
c="g", s=200, alpha=0.5) # 绿色
plt.subplot(2,3,6)
plt.scatter(np.random.rand(N) * 100,
np.random.rand(N) * 100,
c="b", s=300, alpha=0.5) # 蓝色
plt.show()
代码解析:
1、这幅图包含三组数据,每组数据都包含了20个随机坐标的位置
2、参数c表示点的颜色,s是点的大小,alpha是透明度
3、plt.colorbar()添加右边的颜色栏
运行结果:
饼状图——pie
先上代码:
import matplotlib.pyplot as plt
import numpy as np
labels = ["linuxidc", "Ubuntu", "Fedora", "CentOS", "Debian", "SUSE", "linux"]
data = np.random.rand(7) * 100 # 生成7组随机数
# labels指定标签,autopct指定数值的精度
plt.pie(data, labels=labels, autopct="%1.1f%%")
plt.axis("equal") # 设置了坐标大小一致
plt.legend() # 指明要绘制的图例
plt.show()
代码解析:
1、data是一个包含7个数据的随机数值
2、图中的标签通过labels来指定
3、autopct指定了数值的精度格式
4、plt.axis('equal')设置了坐标轴大小一致
5、plt.legend()指明要绘制图例(见下图的右上角)
运行结果:
柱形图——bar
先上代码:
import matplotlib.pyplot as plt
import numpy as np
N = 7
x = np.arange(N)