pyplot
示例
无子图
import matplotlib.pyplot as plt
import numpy as np
data = np.arange(0,10)
# 1. 创建画布
fig = plt.figure('名称1',figsize=(8,10)) # 若不创建fig,用默认画布
# 2. 创建子图
# 3. 添加画布内容
plt.title('名称2')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.xlim((0,10)) # x坐标范围
plt.ylim((0,100))
plt.xticks([0,2,4,8,10]) # x坐标的刻度
plt.yticks([0,20,40,80,100])
# 4. 绘制图像
plt.plot(data, data) # 折线图
plt.plot(data, data**2) # 都在一个图中(没有子图)
# 5. 添加图例
plt.legend(['y=x', 'y=x^2'])
# 6. 保存
plt.savefig('figure1.png')
# 7. 显示图像
plt.show()
有子图
import matplotlib.pyplot as plt
import numpy as np
data = np.arange(0,10)
# 1. 创建画布
fig = plt.figure('名称1',figsize=(8,10)) # 若不创建fig,用默认画布
# 子图1
# 2. 创建子图
fig.add_subplot(2,2,1) # 子图个数2*2,第1个子图(左上角)
# 3. 添加画布内容
plt.title('名称2')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.xlim((0,10)) # x坐标范围
plt.ylim((0,100))
plt.xticks([0,2,4,8,10]) # x坐标的刻度
plt.yticks([0,20,40,80,100])
# 4. 绘制图像
plt.plot(data, data) # 折线图
plt.plot(data, data**2) # 都在一个图中(没有子图)
# 5. 添加图例
plt.legend(['y=x', 'y=x^2'])
# 子图2
# 2. 创建子图
fig.add_subplot(2,2,2) # 第2个子图(右上角)
# 3. 添加画布内容
plt.title('名称3')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.xlim((0,10)) # x坐标范围
plt.ylim((0,100))
plt.xticks([0,2,4,8,10]) # x坐标的刻度
plt.yticks([0,20,40,80,100])
# 4. 绘制图像
plt.scatter(data, data**2)
# 5. 添加图例
plt.legend(['y=x^2'])
# 6. 保存
plt.savefig('figure2.png')
# 7. 显示图像
plt.show()
绘制流程
- 创建画布
- 创建子图
- 添加画布内容
- 绘制图行
- 添加图例
- 保存图形
- 显示图形
创建画布
创建子图
添加画布内容
绘制图形
添加图例
plt.legend()
保存图形
plt.savefig()
显示图形
plt.show()
例子
例2:创建子图
import numpy as np
import matplotlib.pyplot as plt
data = np.random.random(10)
fig = plt.figure(figsize=(8,6))
fig.add_subplot(2,2,1)
plt.title('exp1')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0, 2, 4, 6, 8, 10])
plt.yticks([0, 0.5, 1.0])
plt.pie(data)
plt.legend(['data'])
fig.add_subplot(2,2,2)
plt.title('exp2')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0, 2, 4, 6, 8, 10])
plt.yticks([0, 0.5, 1.0])
plt.scatter(data, data)# y=x
plt.legend(['y=x'])
fig.add_subplot(2,2,3)
plt.title('exp3')
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0, 2, 4, 6, 8, 10])
plt.yticks([0, 0.5, 1.0])
plt.bar(data, data**2)# y=x^2
plt.legend(['y=x^2'])
plt.savefig('123.png')
plt.show()
plot(x)、plot(x,y)
bar(x,y)
scatter(x,y)
pie(x)
hist
绘二维图
条形图
一组数据的对比
arr = np.random.randint(0,10,size=(2,3))
df = pd.DataFrame(arr, index=['a1','a2'], columns=['b1','b2','b3'])
print(df)
# 垂直条形图
plt.bar(x=df.index, height=df['b1'])
plt.show()
# 水平
plt.barh(y=df.index, width=df['b1'])
plt.show()
直方图
折线图
散点图
饼图
箱线图
arr = np.random.randint(0,10,size=(2,3))
df = pd.DataFrame(arr, index=['a1','a2'], columns=['b1','b2','b3'])
print(df)
plt.boxplot(df, labels=df.columns)
plt.show()