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

liftword2周前 (01-20)技术文章7

一、前言

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

二、基本折线图

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 用以控制标记的填充颜色

修改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 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、机器学习、深度学习、人工智能基础知识与应用案例。

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

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

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

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

原文链接

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

相关文章

推荐10款Python图形界面(GUI)框架

图形用户界面(GUI)是用户打开应用程序或网站时的第一印象,这通常包括图标、按钮、图形、显示文本等多种视觉元素,是用户体验的重要组成部分。Python就有大量用于开发GUI的框架,下面给大家介绍10个...

开发图形界面Tkinter、wxPython、PyQt、PySide选哪一个?

  学习Python,就不得不提一下Python的图形界面开发,如果只用命令行写程序,用户体验不太好,难以胜任复杂的人机交互场景。Python的图形界面开发库常用的有:Tkinter、wxPython...

Python超炫技巧!Tkinter神级应用打造震撼视觉的图形化界面设计

目录一、图形化界面设计的基本理解二、窗体控件布局2.1.根窗体显示实例2.2. tkinter 常用控件2.2.1 控件的共同属性2.3 控件布局2.3.1 pack()方法2.3.2 grid()方...

Python | graphics、tkinter 画回归线

前言写 Python 题时遇到一道绘制回归线的题目。要求点击数据点输入进行绘制,我用 graphics 完成了。但是,这样输入并不精确,加上高中受到线性回归方程那庞大计算量的折磨,于是想写个能输数据的...

Python可视化教程

一、基础篇利用python实现可视化的三个步骤:1、确定问题,选择图形2、转换数据,应用函数3、参数设置,一目了然01首先,要知道我们用哪些库来画图?matplotlibpython中最基本的作图库就...