当前位置:网站首页># 可视化常见绘图(二)折线图
# 可视化常见绘图(二)折线图
2022-04-23 06:17:00 【小猪猪家的大猪猪】
折线图
一.折线图简介(Line Chart)
折线图用于显示数据在一个连续的时间间隔或者时间跨度上的变化,它的特点是反映事物随时间或有序类别而变化的趋势。
在折线图中可以清晰的看出数据递增还是递减、增减的速率、增减的规律和峰值特征。折线图常用来分析数据随时间的变化趋势,也可用来分析多组数据随时间变化的相互作用和相互影响。在折线图中横轴通常用来表示时间跨度且时间间隔相同,纵轴表示不同时间时刻的数据值。
二.折线图的组成
一个折线图的构成包括:
- 横轴:表示时间
- 纵轴:表示数值
- 点:表示数据的位置
- 线:表示数据之间的趋势关系
三.使用场景
适用的场景:
- 适用于自变量连续,因变量有序的场景。
不适用的场景:
- 当水平轴的数据类型为无序的分类或者垂直轴的数据类型为连续时间时,不适合使用折线图。
四.实现
在matplotlib中使用plot方法实现折线图。plot方法介绍如下:
plot(args,scalex = True,scaley = True,data = None,** kwargs)
参数1:x:可迭代数值类型(长度必须与Y相等),指定x轴数据,默认range(len(y))
参数2:y:可迭代数值类型,指定y轴数据
参数3:fmt : 字符串型(可选),指定格式字符串,格式为[marker][linestyle][color]
- marker:指定标记点样式
- linestyle:指定折线线性
- color:指定线条颜色
参数4:scalex : bool型, (可选), 默认True,指定X视图是否适用于数据限制
参数5:scalex: bool型, (可选), 默认True,指定Y视图是否适用于数据限制。
参数6:data : 指定需要标记的数据(可选)
参数7:** kwargs:接受的关键字参数传递给Line2D类实例。
返回值:绘制数据的Line2D类实例列表
注:
- *args传递的可变参数包含x, y, fmt
- Line2D类详解
实现代码:
import matplotlib.pyplot as plt
import numpy as np
x_data = np.array(['2011', '2012', '2013', '2014', '2015', '2016', '2017'])
y_data = np.array([58000, 60200, 63000, 71000, 84000, 90500, 107000])
y_data2 = np.array([52000, 54200, 51500, 58300, 56800, 59500, 62700])
# 初始化画图图框
figure, ax = plt.subplots(1, 2)
# 画y_data
line1 = ax[0].plot(y_data, marker='o', lw=2, ls='--', markersize=6, markerfacecolor='r', label="line1")
ax[0].legend()
ax[0].set_xticks(range(len(y_data)))
ax[0].set_xticklabels(x_data)
ax[0].set_title("line1", fontsize=20, fontweight="bold")
ax[0].set_xlabel("year", fontsize=15)
ax[0].set_ylabel("amount", fontsize=15)
# 画y_data2
line2 = ax[1].plot(y_data2, marker='o', lw=2, ls='-', color='k', markersize=6, markerfacecolor='b', label="line2")
ax[1].legend()
ax[1].set_xticks(range(len(y_data)))
ax[1].set_xticklabels(x_data)
ax[1].set_title("line2", fontsize=20, fontweight="bold")
ax[1].set_xlabel("year", fontsize=15)
ax[1].set_ylabel("amount", fontsize=15)
plt.show()
实现效果如下:

如果希望更加美观可以做如下更改
ax[0].grid(True):画网格ax[1].grid(True):画网格plt.style.use('ggplot'):使用ggplot样式
效果如下:

可以使用text标记每一个标记点的数值,完整程序如下:
# 画y_data
line1 = ax[0].plot(y_data, lw=2, color='k', label="line1", marker='o', markerfacecolor='g')
ax[0].legend()
ax[0].set_xticks(range(len(y_data)))
ax[0].set_xticklabels(x_data)
ax[0].set_title("line1", fontsize=20, fontweight="bold")
ax[0].set_xlabel("year", fontsize=15)
ax[0].set_ylabel("amount", fontsize=15)
ax[0].grid(True)
# 对数据进行标记
for x_, y_ in zip(range(len(y_data)), y_data):
ax[0].text(x_, y_, y_, ha='left', va='top', color='red')
# 画y_data2
line2 = ax[1].plot(y_data2, lw=2, color='k', label="line2", marker='o', markerfacecolor='g')
ax[1].legend()
ax[1].set_xticks(range(len(y_data)))
ax[1].set_xticklabels(x_data)
ax[1].set_title("line2", fontsize=20, fontweight="bold")
ax[1].set_xlabel("year", fontsize=15)
ax[1].set_ylabel("amount", fontsize=15)
ax[1].grid(True)
# 对数据进行标记
for x_, y_ in zip(range(len(y_data2)), y_data2):
ax[1].text(x_, y_, y_, ha='left', va='top', color="red")
plt.show()
效果如下:

五.参考
版权声明
本文为[小猪猪家的大猪猪]所创,转载请带上原文链接,感谢
https://blog.csdn.net/pcx171/article/details/122216987
边栏推荐
- PyTorch 19. Differences and relations of similar operations in pytorch
- HQL语句的调优
- F. The wonderful use of pad
- 网络层重要知识(面试、复试、期末)
- PyTorch 22. Pytorch common code snippet collection
- Detailed explanation of device tree
- Intelligent communication solution of Hainan Phoenix Airport
- 连接orcale
- The simplest and complete example of libwebsockets
- Systrace parsing
猜你喜欢

使用proteus仿真STM32超声波SRF04测距!Code+Proteus

AUTOSAR从入门到精通100讲(五十二)-诊断和通信管理功能单元

华为云MVP邮件

PyTorch 10. Learning rate

记录阿里云服务器挖矿程序处理

Are realrange and einsum really elegant

关于'enum'枚举类型以及结构体的问题。

ARMCC/GCC下的stack protector

Solution of emergency communication system for major security incidents

el-select 中v-model绑定值,数据回显只显示value,不显示label
随机推荐
应急医疗通讯解决方案|MESH无线自组网系统
防汛救灾应急通信系统
Detailed explanation of unwind stack backtracking
项目文件“ ”已被重命名或已不在解决方案中、未能找到与解决方案关联的源代码管理提供程序——两个工程问题
By onnx checker. check_ Common errors detected by model
GIS实战应用案例100篇(五十二)-ArcGIS中用栅格裁剪栅格,如何保持行列数量一致并且对齐?
excel实战应用案例100讲(八)-Excel的报表连接功能
x509解析
在项目中的定时作用
golang实现一个带Web界面的五险一金计算器
x86架构初探之8086
枫桥学院开元名庭酒店DMR系统解决方案
“泉”力以赴·同“州”共济|北峰人一直在行动
enforce fail at inline_ container. cc:222
如何利用qemu搭建SOC protoype:80行代码实现一个Cortex M4 模拟器
Systrace parsing
机器视觉系列(02)---TensorFlow2.3 + win10 + GPU安装
北峰油气田自组网无线通信对讲系统解决方案
el-table的数据更新后,页面中数据未更新this.$forceUpdate()无效果
城市应急管理|城市突发事故应急通信指挥调度系统