一、上海中午11点–12点某城市温度变化图
import matplotlib.pyplot as plt
import random
# 0.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2.绘制图像
plt.plot(x, y_shanghai)
# 2.1 添加x,y轴刻度
# 构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 2.2 添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
# 2.3 添加描述信息
plt.xlabel("时间", fontsize=16)
plt.ylabel("温度", fontsize=16)
plt.title("上海中午11点--12点某城市温度变化图", fontsize=20)
# 2.4 图像保存
plt.savefig("data/test.png")
# 3.图像显示
plt.show()
二、 在一个坐标系中绘制多个图像
import matplotlib.pyplot as plt
import random
# 0.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2.绘制图像
plt.plot(x, y_shanghai, label="上海")
plt.plot(x, y_beijing, color="r", linestyle="--", label="北京")
# 2.1 添加x,y轴刻度
# 构造x,y轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 2.2 添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
# 2.3 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点--12点某城市温度变化图", fontsize=20)
# 2.4 添加图例
plt.legend(loc=0)
# 2.5 图像保存
plt.savefig("./test.png")
# 3.图像显示
plt.show()
1. 设置图形风格
# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
# 绘制折线图
plt.plot(x, y_shanghai)
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')
颜色字符 | 风格字符 |
---|---|
r 红色 | - 实线 |
g 绿色 | - - 虚线 |
b 蓝色 | -. 点划线 |
w 白色 | : 点虚线 |
c 青色 | ’ ’ 留空、空格 |
m 洋红 | |
y 黄色 | |
k 黑色 |
2. 显示图例
# 绘制折线图
plt.plot(x, y_shanghai, label="上海")
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")
# 显示图例
plt.legend(loc="best")
Location String | Location Code |
---|---|
‘best’ | 0 |
‘upper right’ | 1 |
‘upper left’ | 2 |
‘lower left’ | 3 |
‘lower right’ | 4 |
‘right’ | 5 |
‘center left’ | 6 |
‘center right’ | 7 |
‘lower center’ | 8 |
‘upper center’ | |
‘center’ | 10 |
三、多个坐标系显示 plt.subplots(面向对象的画图方法)
import matplotlib.pyplot as plt
import random
# 0.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x]
y_beijing = [random.uniform(1, 5) for i in x]
#创建刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#1.创建画布
fig,axes=plt.subplots(nrows=2,ncols=1,figsize=(20,16),dpi=100)
#绘制第一个坐标系xx
#2.1绘图
axes[0].plot(x,y_shanghai, color="r", linestyle="--",label='上海')
#2.2设置刻度标签
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
#2.3 设置轴标题
axes[0].set_xlabel('时间',fontsize=14)
axes[0].set_ylabel('温度',fontsize=14)
axes[0].set_title('上海市一小时温度变化图',fontsize=20)
#2.4显示网格
axes[0].grid(True,linestyle='--',alpha=0.5)
#2.5显示图例
axes[0].legend(loc=0)
#绘制第二个坐标系
#2.1绘图
axes[1].plot(x,y_beijing,label='北京')
#2.2设置刻度标签
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5])
#2.3 设置轴标题
axes[1].set_xlabel('时间',fontsize=14)
axes[1].set_ylabel('温度',fontsize=14)
axes[1].set_title('北京市一小时温度变化图',fontsize=20)
#2.4显示网格
axes[1].grid(True,linestyle='--',alpha=0.5)
#2.5显示图例
axes[1].legend(loc=0)
#3.保存图像
plt.savefig('data/axes.png')
#4.显示图像
plt.show()
四、绘制sin(x)函数
import numpy as np
import matplotlib.pyplot as plt
# 0.准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
# 2.绘制函数图像
plt.plot(x, y)
# 2.1 添加网格显示
plt.grid()
# 2.2 添加描述信息
plt.title("sin(x)函数", fontsize=20)
#3.保存图像
plt.savefig('data/sin(x).png')
#4.显示图像
plt.show()
五、总结
- 添加x,y轴刻度
- plt.xticks()
- plt.yticks()
- 注意:在传递进去的第一个参数必须是数字,不能是字符串,如果是字符串吗,需要进行替换操作
- 添加网格显示
- plt.grid(linestyle="–", alpha=0.5)
- 添加描述信息
- plt.xlabel()
- plt.ylabel()
- plt.title()
- 图像保存
- plt.savefig(“路径”)
- 多次plot
- 直接进行添加就OK
- 显示图例
- plt.legend(loc=“best”)
- 注意:一定要在plt.plot()里面设置一个label,如果不设置,没法显示
- 多个坐标系显示
- plt.subplots(nrows=, ncols=)
- 折线图的应用
- 应用于观察数据的变化
- 可以画出一些数学函数图像
转载:https://blog.csdn.net/geek64581/article/details/106191962
查看评论