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趋势线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyenv虚拟环境管理python多版本和软件库的方法

    pyenv虚拟环境管理python多版本和软件库的方法

    这篇文章主要介绍了pyenv虚拟环境管理python多版本和软件库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 解决python3 网络请求路径包含中文的问题

    解决python3 网络请求路径包含中文的问题

    今天小编就为大家分享一篇解决python3 网络请求路径包含中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • centos7中安装python3.6.4的教程

    centos7中安装python3.6.4的教程

    Python3.6.4官方版是一款在适合开发人员使用的windows系统上运行的脚本语言工具,Python3.6.4官方版是目前程序设计从业者必学的语言之一。这篇文章给大家介绍了centos7中安装python3.6.4的教程,感兴趣的朋友一起看看吧
    2019-12-12
  • 如何解决flask修改静态资源后缓存文件不能及时更改问题

    如何解决flask修改静态资源后缓存文件不能及时更改问题

    在本篇内容里小编给大家整理的是关于如何解决flask修改静态资源后缓存文件不能及时更改问题,需要的朋友们可以学习下。
    2020-08-08
  • Pycharm配置Anaconda环境的详细图文教程

    Pycharm配置Anaconda环境的详细图文教程

    PyCharm是一款很好用很流行的python编辑器,Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程,下面这篇文章主要给大家介绍了关于Windows系统下Pycharm配置Anaconda环境的相关资料,需要的朋友可以参考下
    2023-02-02
  • python开发一款翻译工具

    python开发一款翻译工具

    这篇文章主要介绍了如何用python开发一款翻译工具,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-10-10
  • 基于python检查SSL证书到期情况代码实例

    基于python检查SSL证书到期情况代码实例

    这篇文章主要介绍了基于python检查SSL证书到期情况代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python模拟哔哩哔哩滑块登入验证的实现

    python模拟哔哩哔哩滑块登入验证的实现

    这篇文章主要介绍了python模拟哔哩哔哩滑块登入验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 利用python绘制蜂群图的示例代码

    利用python绘制蜂群图的示例代码

    蜂群图可以不重叠的显示各数据点的分布,相对于散点图,所绘制的点彼此靠近且不会重叠,能有效呈现出点分布的局部密度信息,本文给大家介绍了如何利用python绘制蜂群图,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-03-03
  • Mininconda3安装和使用的具体步骤

    Mininconda3安装和使用的具体步骤

    Anaconda和Miniconda是Python的两个流行发行版,Miniconda是Anaconda的精简版,Miniconda体积小很多,启动速度超快,非常适合那些只需要基础功能的用户,下面就来介绍一下具体使用,感兴趣的可以了解一下
    2025-08-08

最新评论