Matplotlib绘制折线图
- 折线图
- 完整代码与效果
- 基础折线图
- 设定横纵坐标
- 设置中文显示
- 添加网格
- 添加描述信息
- 再添加一个城市
- 设置两个折线图
前言
上一节内容主要围绕介绍 Matplotlib 的画板结构。
链接:https://blog.csdn.net/weixin_43098506/article/details/129331576
本节内容围绕 折线图。
下一节内容围绕 散点图与柱状图。
链接:https://blog.csdn.net/weixin_43098506/article/details/129333625
正文
折线图
完整代码与效果 的后续小节将会对完整代码进行分解。
完整代码与效果
完整代码:
import random
import matplotlib
import matplotlib.pyplot as plt
# 设置中文字体显示
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
# 设置数组
x = range(60)
y1 = [random.uniform(15,18) for i in x]
y2 = [random.uniform(0,3) for i in x]
# 创建画布,规定大小以及清晰度
plt.figure(figsize=(20,8), dpi=80)
# 绘制折线图像
plt.plot(x, y1, color="orange", linestyle="--", label="data1")
plt.plot(x, y2, label="data2")
# 设置 x,y 坐标内容
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0,40,5))
# 添加网格
plt.grid(True, linestyle="--", alpha=0.5)
# 添加描述信息
plt.title("某城市11点到12点间温度变化状况")
plt.xlabel("时间")
plt.ylabel("温度")
# 显示图例
plt.legend(loc="upper left")
# 4、显示图像
plt.show()
效果:
基础折线图
# 1、准备数据,构建 x,y1 两个数组
import random
import matplotlib.pyplot as plt
x = range(60)
y1 = [random.uniform(15,18) for i in x]
# 2、创建画布,规定大小以及清晰度
plt.figure(figsize=(20,8), dpi=80)
# 3、绘制折线图像
plt.plot(x, y1, color="orange", linestyle="--", label="data1")
# 4、显示图像
plt.show()
设定横纵坐标
# 设置 x 的显示内容
x_label = ["11点{}分".format(i) for i in x]
# 修改 x,y 刻度
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0,40,5))
设置中文显示
# 设置中文字体显示
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
添加网格
# 添加网格
plt.grid(True, linestyle="--", alpha=0.5)
添加描述信息
# 添加描述信息
plt.title("某城市11点到12点间温度变化状况")
plt.xlabel("时间")
plt.ylabel("温度")
再添加一个城市
# 再添加一个城市
y2 = [random.uniform(0,3) for i in x]
plt.plot(x, y2, label="data2")
------ 代码分解部分完成 ------
设置两个折线图
如何实现在一个图片中平行展示两个城市的温度变化图片?
主要方法通过 plt.subplots(nrows=, ncols= ) 函数分成想要的图片个数以及格式。
plt.subplots(nrows=1, ncols=2, figsize(20,8), dpi=80)
以上代码将画布分为左右两个部分(1行2列),画布的大小为 20*8,清晰度为 80.
完整代码:
注意:代码中多数变化为 set_函数,需要注意到画布的变化带来的设置函数的变化
import random
import matplotlib.pyplot as plt
# 设置中文字体显示
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
# 1、准备数据,构建 x,y 两个数组
x = range(60)
y1 = [random.uniform(15,18) for i in x]
y2 = [random.uniform(0,3) for i in x]
# 2、创建两个画布(1行2列),规定大小以及清晰度
figure, axes = plt.subplots(nrows=1, ncols=2, figsize=(20,8), dpi=80)
# 3、绘制折线图像
axes[0].plot(x, y1, color="orange", linestyle="--", label="data1")
axes[1].plot(x, y2, color="blue", linestyle="-", label="data2")
# 设置 x 的显示内容
x_label = ["11点{}分".format(i) for i in x]
# 修改 x,y 刻度
axes[0].set_xticklabels(x_label[::5])
axes[0].set_yticks(range(0,40,5))
axes[1].set_xticklabels(x_label[::5])
axes[1].set_yticks(range(0,40,5))
# 添加网格
axes[0].grid(True, linestyle="--", alpha=0.5)
axes[1].grid(True, linestyle="--", alpha=0.5)
# 添加描述信息
axes[0].set_title("城市一11点到12点间温度变化状况")
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[1].set_title("城市二11点到12点间温度变化状况")
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
# 显示图例
axes[0].legend(loc="upper left")
axes[1].legend(loc="upper left")
# 4、显示图像
plt.show()
效果图:
上一节内容主要围绕介绍 Matplotlib 的画板结构。
链接:https://blog.csdn.net/weixin_43098506/article/details/129331576
下一节内容围绕 散点图与柱状图。
链接:https://blog.csdn.net/weixin_43098506/article/details/129333625