龙空技术网

【Python可视化系列】一文彻底教会你绘制美观的折线图(源码)

数据杂坛 140

前言:

现时姐妹们对“python绘制直线图”可能比较关心,看官们都需要了解一些“python绘制直线图”的相关资讯。那么小编同时在网络上网罗了一些对于“python绘制直线图””的相关内容,希望大家能喜欢,同学们快快来学习一下吧!

一、前言

折线图是一种常用的可视化图表,可以清晰地展示数据随时间或其他连续变量的变化趋势,通过连接数据点,可以观察到数据的上升、下降、波动等变化趋势,帮助人们更直观地理解数据的变化规律。

二、基本折线图2.1简单折线图

import matplotlib.pyplot as plt# 准备数据x = [1, 2, 3, 4, 5]  # x轴数据y = [2, 6, 1, 3, 10]  # y轴数据# 设置字体plt.rcParams['font.family']='Times New Roman, SimSun'# 绘制折线图plt.plot(x, y)# 添加标题和坐标轴标签plt.title('折线图示例')plt.xlabel('X轴')plt.ylabel('Y轴')# 显示图形plt.show()

结果如下图所示:

2.2设置线条和点

plt.plot(x, y,color='red',linestyle='--',marker='*')x:横坐标数据y:纵坐标数据color:折线的颜色    character   color    ==========  ========    'b'         blue    'g'         green    'r'         red    'c'         cyan    'm'         magenta    'y'         yellow    'k'         black    'w'         whitelinestyle:折线的类型,默认为实线    ``'-'``             实线样式    ``'--'``            虚线样式    ``'-.'``            点划线样式    ``':'``             点虚线样式 marker:数据点的标记样式,默认为空  三角形    '^'  五角星    '*'  圆圈     'o'  加号     '+'缩写形式:plt.plot(x, y,'*:r')注:引号内的不区分顺序,但是颜色需要用缩写其他的一些参数:参数 linewidth 用以控制线条宽度(默认值为0.5)参数 alpha=0.5 用以控制线条透明度参数 markersize 用以控制标记大小参数 markeredgecolor 用以控制标记的轮廓颜色参数 markerfacecolor 用以控制标记的填充颜色

修改plt.plot这行代码,得到如下结果:

三、进阶3.1添加图例、添加数字标签

import matplotlib.pyplot as plt# 月份x1 = ['2017-01', '2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07', '2017-08',      '2017-09', '2017-10', '2017-11', '2017-12']# 体重y1 = [86, 85, 84, 80, 75, 70, 70, 74, 78, 70, 74, 80]# 设置画布大小plt.figure(figsize=(10, 7))# 设置字体font1 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 14}plt.rc('font', **font1)# 绘图plt.plot(x1, y1, label='weight changes', linewidth=3, color='r', marker='o',         markerfacecolor='blue', markersize=14)# 标题plt.title("my weight", fontproperties=font1)# 横坐标描述plt.xlabel('month', fontproperties=font1)# 纵坐标描述plt.ylabel('weight', fontproperties=font1)# 设置数字标签for a, b in zip(x1, y1):    plt.text(a, b+0.5, b, ha='center', va='bottom', fontproperties=font1)# 设置图例plt.legend()plt.show()

这段代码添加了画布大小设置、字体设置、数字标签设置以及图例设置,结果如下:

3.2一图绘制多条折线

import matplotlib.pyplot as pltimport seaborn as snsx = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]highest = [12, 15, 18, 14, 16, 14, 10]lowest = [6, 4, 8, 12, 10, 9, 7]plt.plot(x, highest, "rs--", label="最高气温")plt.plot(x, lowest, "rd--", label="最低气温")for a, b in zip(x, highest):    plt.text(a, b+1, b, ha='center', va='bottom')    # 数据显示的横坐标、显示的位置高度、显示的数据值的大小for a, b in zip(x, lowest):    plt.text(a, b-2, b, ha='center', va='bottom')# 绘图风格设置,使用seaborn库的API来设置样式sns.set_style('darkgrid')# # 设置字体font1 = {'family': 'SimSun', 'weight': 'normal', 'size': 14}plt.rc('font', **font1)plt.rcParams["axes.unicode_minus"] = False# x轴刻度标签设置plt.xticks(x, fontproperties=font1)# y轴标签数值范围设置plt.ylim(0, 25)# 标题设置plt.title("一周气温变化趋势", fontproperties=font1)plt.xlabel("星期", fontproperties=font1)plt.ylabel("气温", fontproperties=font1)# 图例设置plt.legend()plt.show()

这段代码对绘图的风格、x轴刻度标签的字体、y轴刻度标签的范围进行了设置,结果如下:

本人读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,对Python有一定认知和理解,会结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能基础知识与应用案例。

致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

1、关注“数据杂坛”公众号,即可在后台联系我获取相关数据集和源码。

2、关注“数据杂坛”公众号,点击“领资料”即可免费领取资料书籍。

3、需要论文指导或商务合作,点击“联系我”添加作者微信直接交流。

原文链接

【Python可视化系列】一文彻底教会你绘制美观的折线图(理论+源码)

标签: #python绘制直线图