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

本文详细介绍了如何在Python中使用matplotlib创建折线图,包括基本折线图的绘制、颜色、线条样式和标记设置,以及进阶应用如添加图例、数字标签和绘制多条折线。作者结合实际科研经验,展示了如何在数据挖掘和AI项目中有效利用折线图进行数据分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

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

二、基本折线图

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'         white
linestyle:折线的类型,默认为实线
    ``'-'``             实线样式
    ``'--'``            虚线样式
    ``'-.'``            点划线样式
    ``':'``             点虚线样式 
marker:数据点的标记样式,默认为空
  三角形    '^'
  五角星    '*'
  圆圈     'o'
  加号     '+'
缩写形式:plt.plot(x, y,'*:r')
注:引号内的不区分顺序,但是颜色需要用缩写


其他的一些参数:
参数 linewidth 用以控制线条宽度(默认值为0.5)
参数 alpha=0.5 用以控制线条透明度
参数 markersize 用以控制标记大小
参数 markeredgecolor 用以控制标记的轮廓颜色
参数 markerfacecolor 用以控制标记的填充颜色

图片

三、进阶

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 plt
import seaborn as sns

x = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
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、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

一幅好看的折线图并选择适宜的配色方案,可以通过Python中的matplotlib库来实现。首先,需要导入matplotlib库和相关的模块。 例如:`import matplotlib.pyplot as plt` 接下来,可以定义要绘制折线图的数据点。可以手动提供数据,或者从外部文件中读取。 例如:`x = [1, 2, 3, 4, 5]` # X轴数据 `y = [5, 10, 3, 8, 6]` # Y轴数据 然后,可以使用plot函数绘制折线图,并设置线条颜色。 例如:`plt.plot(x, y, color='blue')` # 使用蓝色绘制折线图 接下来,可以使用xlabel和ylabel函数设置X轴和Y轴标签,使用title函数设置图表标题。 例如:`plt.xlabel('X轴')` # 设置X轴标签 `plt.ylabel('Y轴')` # 设置Y轴标签 `plt.title('折线图')` # 设置图表标题 最后,使用show函数显示图表。 例如:`plt.show()` 对于配色方案,可以使用matplotlib中的预设配色方案,或者自定义配色方案。可以在plot函数中使用color参数来设置线条颜色,也可以使用其他可用的参数设置线条样式、标记样式等。 例如:`plt.plot(x, y, color='blue', linestyle='-', marker='o')` # 绘制蓝色线条,使用实线和圆圈标记 此外,还可以通过调整图表的背景色、线条粗细、字体颜色等来进一步调整折线图的配色方案。 总之,使用Python绘制好看的折线图配色,我们可以通过导入matplotlib库,设置数据点,绘制折线图,设置标签和标题,以及调整线条样式、颜色等参数来实现。在选择配色方案时,可以使用matplotlib中的预设配色方案或自定义配色方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据杂坛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值