文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python可视化Matplotlib折线图plot用法详解

2024-04-02 19:55

关注

折线图是数据分析中非常常用的图形。其中,折线图主要是以折线的上升或下降来表示统计数量的增减变化的统计图。用于分析自变量和因变量之间的趋势关系,最适合用于显示随着时间而变化的连续数据,同时还可以看出数量的差异,增长情况。

特点:能够显示数据的变化趋势,反映事物的变化情况。

Matplotlib 中绘制折线图的函数为 plot() ,使用语法如下:


matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

常用参数及说明:

参数 接收值 说明 默认值
x,y array 表示 x 轴与 y 轴对应的数据
color string 表示折线的颜色 None
marker string 表示折线上数据点处的类型 None
linestyle string 表示折线的类型 -
linewidth 数值 线条粗细:linewidth=1.=5.=0.3 1
alpha 0~1之间的小数 表示点的透明度 None
label string 数据图例内容:label=‘实际数据' 1None

1.完善原始折线图 — 给图形添加辅助功能

需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~25度

1.1 准备数据并画出初始折线图


import matplotlib.pyplot as plt
import random
# 画出温度变化图
# 0.准备x, y坐标的数据
x = range(60)
y_jiangsu = [random.uniform(15, 25) for i in x]
# 1.创建画布
plt.figure(figsize=(20, 8), dpi=80)
# 2.绘制折线图
plt.plot(x, y_jiangsu)
# 3.显示图像
plt.show()

1.2 添加自定义x,y刻度

plt.xticks(x, **kwargs)

x:要显示的刻度值

plt.yticks(y, **kwargs)

y:要显示的刻度值


# 构造x轴刻度标签
x_ticks_label = ["11点{}分".format(i) for i in x]
# 构造y轴刻度
y_ticks = range(40)
# 修改x,y轴坐标的刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])

1.3 中文显示问题解决

如果没有解决过中文问题的话,绘制的图像会出现中文无法显示的问题。

解决方案:
在Python脚本中动态设置matplotlibrc,这样也可以避免由于更改配置文件而造成的麻烦,具体代码如下:


from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]

有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,例如无法显示负号问题,此时需要更改axes.unicode_minus参数:


# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

1.4 添加网格显示

为了更加清楚地观察图形对应的值


plt.grid(True, linestyle='--', alpha=0.5)

1.5 添加描述信息

添加x轴、y轴描述信息及标题

通过fontsize参数可以修改图像中字体的大小


plt.xlabel("时间")
plt.ylabel("温度")
plt.title("江苏中午11点0分到12点之间的温度变化图示", fontsize=20)

1.6 图像保存


# 保存图片到指定路径
plt.savefig("test.png")

注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

在这里插入图片描述

2. 在一个坐标系中绘制多个图像

2.1 多次plot

需求:再添加一个城市的温度变化
收集到北京当天温度变化情况,温度在1度到3度。怎么去添加另一个在同一坐标系当中的不同图形,其实很简单只需要再次plot即可,但是需要区分线条。


# 增加北京的温度数据
y_beijing = [random.uniform(1, 3) for i in x]
# 绘制折线图
plt.plot(x, y_jiangsu)
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--')

2.2 显示图例

注意:如果只在plt.plot()中设置label还不能最终显示出图例,还需要通过plt.legend()将图例显示出来。


# 绘制折线图
plt.plot(x, y_jiangsu, label="江苏")
# 使用多次plot可以画多个折线
plt.plot(x, y_beijing, color='r', linestyle='--', label="北京")
# 显示图例
plt.legend(loc="best")

完整代码:


# 0.准备数据
x = range(60)
y_jiangsu = [random.uniform(15, 25) 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_jiangsu, 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(35)
# 刻度显示
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.savefig("./test.png")
# 2.5 添加图例
plt.legend(loc="best")
# 3.图像显示
plt.show()

在这里插入图片描述

2.3 折线图的应用场景

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

Dragon少年 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

以上就是Python可视化Matplotlib折线图plot用法详解的详细内容,更多关于Python可视化Matplotlib的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯