Python绘制趋势线的示例代码

 更新时间:2024年03月01日 14:41:47   作者:彭博锐  
趋势线是用来显示数据趋势或者预测未来发展方向的一种图形表示方法,这篇文章主要为大家详细介绍了如何使用Python绘制趋势线,需要的可以了解下

趋势线

趋势线是用来显示数据趋势或者预测未来发展方向的一种图形表示方法。在统计学和数据分析中,趋势线通常是通过拟合数据点来找到一条最符合数据整体趋势的直线、曲线或者其他形状。常见的趋势线拟合方法包括线性回归、多项式回归、指数平滑等。

趋势线在金融分析、市场预测、销售趋势分析、科学研究等领域都有广泛的应用。通过趋势线,人们可以更清晰地了解数据的走势,从而做出更加准确的决策。

在图表中,趋势线通常以一条穿过数据点的曲线或直线的形式呈现,使得观察者可以更容易地识别出数据的趋势方向。

示例代码

import numpy as np
import matplotlib.pyplot as plt

# 生成一些示例数据
x = np.linspace(0, 10, 100)
y = 2 * x + np.random.normal(0, 1, 100)  # 线性上升的数据,加入一些噪声

# 绘制原始曲线
plt.plot(x, y, label='Data')

# 使用线性回归拟合趋势线
slope, intercept = np.polyfit(x, y, 1)
trendline = slope * x + intercept

# 绘制趋势线
plt.plot(x, trendline, color='red', linestyle='--', label='Trendline')

# 添加图例和标签
plt.legend()
plt.title('Data with Trendline')
plt.xlabel('X')
plt.ylabel('Y')

# 显示图形
plt.show()

结果展示

补充:横轴不连续的趋势图

这里主要用到brokenaxes库,可以使坐标轴不连续。

示例代码

import numpy as np
import matplotlib.pyplot as plt
from brokenaxes import brokenaxes

# 生成一些示例数据
x = np.linspace(0, 10, 100)
y = 2 * x + np.random.normal(0, 1, 100)  # 线性上升的数据,加入一些噪声

# 将数据分成两段
x1, y1 = x[:40], y[:40]
x2, y2 = x[60:], y[60:]

# 创建一个BrokenAxes对象
bax = brokenaxes(xlims=((0, 4), (6, 10)), hspace=0.05)

# 绘制第一段趋势线
slope1, intercept1 = np.polyfit(x1, y1, 1)
trendline1 = slope1 * x1 + intercept1
bax.plot(x1, y1, label='Segment 1', color='blue')
bax.plot(x1, trendline1, color='red', linestyle='--', label='Trendline 1')

# 绘制第二段趋势线
slope2, intercept2 = np.polyfit(x2, y2, 1)
trendline2 = slope2 * x2 + intercept2
bax.plot(x2, y2, label='Segment 2', color='orange')
bax.plot(x2, trendline2, color='green', linestyle='--', label='Trendline 2')

# 添加标题和标签
bax.set_xlabel('X Label')
bax.set_ylabel('Y Label')
bax.set_title('Data with Trendline (Broken Axes)')

# 显示图例
bax.legend(loc='lower right')

# 显示图形
plt.show()

结果展示

到此这篇关于Python绘制趋势线的示例代码的文章就介绍到这了,更多相关Python趋势线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Python内层for循环如何break出外层的循环的问题

    解决Python内层for循环如何break出外层的循环的问题

    今天小编就为大家分享一篇解决Python内层for循环如何break出外层的循环的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python生成pdf文件的方法

    Python生成pdf文件的方法

    这篇文章主要介绍了Python生成pdf文件的方法,比较实用的功能,需要的朋友可以参考下
    2014-08-08
  • Python+QTimer计时器实现摄像头视频的播放和暂停

    Python+QTimer计时器实现摄像头视频的播放和暂停

    这篇文章主要为大家详细介绍了Python如何通过QTimer计时器实现摄像头视频的播放和暂停功能,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • Python学习之名字,作用域,名字空间

    Python学习之名字,作用域,名字空间

    这篇文章主要介绍了Python学习之名字,作用域,名字空间,文章围绕主题展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考以一下
    2022-05-05
  • 对python list 遍历删除的正确方法详解

    对python list 遍历删除的正确方法详解

    今天小编就为大家分享一篇对python list 遍历删除的正确方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python3 实现自定义切片类为左闭右闭详情

    python3 实现自定义切片类为左闭右闭详情

    这篇文章主要介绍了python3 实现自定义切片类为左闭右闭详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • python 字符串追加实例

    python 字符串追加实例

    今天小编就为大家分享一篇python 字符串追加实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python math模块使用方法介绍

    python math模块使用方法介绍

    math库是python的内置数学类函数库,支持整数和浮点数运算,math模块下的函数,返回值均为浮点数,除非有说明,math模块提供类似C语言标准定义的数学函数
    2022-08-08
  • 将tensorflow模型打包成PB文件及PB文件读取方式

    将tensorflow模型打包成PB文件及PB文件读取方式

    今天小编就为大家分享一篇将tensorflow模型打包成PB文件及PB文件读取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 详解python selenium 爬取网易云音乐歌单名

    详解python selenium 爬取网易云音乐歌单名

    这篇文章主要介绍了python selenium爬取网易云音乐歌单名,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论