Figure:整个画布对象。我们所有的绘图操作都是在Figure对象上操作的,不论是单个图表还是多子图。
Axes:这就是我们平常说的具体的“一幅图”(),它是具有数据空间的图像区域。
-
多子图
第一种方式
fig = plt.figure(figsize=(12, 4)) #先整体画布,再添加子图
ax1 = fig.add_subplot(1, 3, 1)
ax2 = fig.add_subplot(1, 3, 2)
ax3 = fig.add_subplot(1, 3, 3)
ax1.plot([1, 2, 3])
ax2.plot([3, 2, 1])
ax3.plot([2, 2, 2])
plt.show()
第二种方式 这种方式更好
fig, axes = plt.subplots(2, 3, figsize=(12, 10))#第一步定义好画布和子图
axes[0, 0].plot([1, 2, 3])
axes[0, 1].plot([3, 2, 1])
axes[0, 2].plot([2, 2, 2])
axes[1, 2].plot([2, 2, 2])
plt.show()
plt.xticks([0,250,500,750,1000],rotation=30, fontsize='large')
plt.yticks([-45,-35,-25,-15,0],rotation=30, fontsize='small')
plt.xlim(11, -1)
plt.ylim(1.5, -1.5)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.text(5,0.5,'this is a sin(x) curve',ha='center',va='center')# 图形中添加注释
fig, ax = plt.subplots()
x = np.linspace(0, 20, 1000)
ax.plot(x, np.cos(x))
ax.axis('equal')
ax.annotate('local maximum', xy=(6.28, 1), xytext=(10, 4),
arrowprops=dict(facecolor='black', shrink=0.05))
ax.annotate('local minimum', xy=(5 * np.pi, -1), xytext=(2, -6),
arrowprops=dict(arrowstyle="->",
connectionstyle="angle3,angleA=0,angleB=-90"));
plt.boxplot(np.random.randn(100)) 箱体图
matplotlib.pyplot.contour(args, data=None, kwargs)等高线
plt.scatter(x, y) 散点图
plt.pie(sizes) 饼图
plt.hist(x, 50) 直方图 ,关键概念: 频度,分箱,连续。
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, , align='center', data=None, kwargs) 条形图 ,x与y 对应关系,离散
1.条形图是用条形的高度表示频数的大小,而直方图实际上是用长方形的面积表示频数,当长方形的宽相等的时候可以用矩形的的高表示频数;
2.条形图中,横轴上的数据是孤立的,是一个具体的数据,而直方图中,横轴上的数据是连续的,是一个范围;
3.条形图中,各长方形之间有空隙,而直方图中,各长方形是靠在一起的
网友评论