首页 > 编程问答 >用 python 绘制不同时间序列数据的图表

用 python 绘制不同时间序列数据的图表

时间:2024-06-04 11:18:21浏览次数:36  
标签:python matplotlib

我有两个不同的时间序列数据,如下所示。

请在此处输入图片描述

我希望将这两组不同的时间序列值放在一个图表中。代码如下,不幸的是,这并不是我想要的效果。第二张图片就是我想要的效果

plt.figure fig,ax = plt.subplots(1,1) ax.plot(df['TIME1'][1:100],df['DATA1'][1:100]) ax.plot(df['TIME2'][1:100],df['DATA2'][1:100]) ax.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing1)) plt.show()

more

在此输入图片描述

在此输入图片描述 我想请教如何在图表中按时间顺序绘制这两组数据,感谢您的回复!


我了解你想将两个时间序列数据按时间顺序绘制在一个图表中,但是你的代码没有达到预期的效果。问题在于,你分别绘制了两个时间序列,而没有将它们的时间轴对齐。

为了实现你想要的效果,你需要:

  1. 合并两个数据框的时间列: 创建一个新的时间轴,它包含两个数据框中所有的唯一时间点。
  2. 将两个数据框的数据与新时间轴对齐: 使用合并后的时间轴作为索引,将两个数据框的数据与之对齐,缺失值可以用NaN填充。
  3. 绘制合并后的数据: 使用 matplotlib 绘制合并后的数据,新时间轴作为 X 轴。

以下是代码示例:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

# 假设你的数据框名为 df

# 1. 合并时间列
combined_time = pd.concat([df['TIME1'], df['TIME2']]).unique()
combined_time.sort()

# 2. 创建新的数据框,使用合并后的时间轴作为索引
df1 = df.set_index('TIME1')[['DATA1']].reindex(combined_time)
df2 = df.set_index('TIME2')[['DATA2']].reindex(combined_time)

# 3. 绘制合并后的数据
fig, ax = plt.subplots(1, 1)

ax.plot(df1.index, df1['DATA1'], label='DATA1')
ax.plot(df2.index, df2['DATA2'], label='DATA2')

ax.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing1))
plt.legend()
plt.show()

这段代码首先合并了两个时间列,然后使用 reindex 函数将两个数据框的数据与新的时间轴对齐。最后,代码使用 matplotlib 绘制了合并后的数据。

希望这段代码可以帮助你实现你想要的效果! 如果你的数据框结构不同,请告诉我,我会尽力调整代码。

标签:python,matplotlib
From: 78570546

相关文章

  • Python编程学习第一篇——Python零基础快速入门(五)-列表(List)
    今天我们来一起学习Python的列表(list),Python中的列表(List)是一种有序、可变的数据结构,可以用来存储多个值。列表可以包含不同类型的数据,例如整数、浮点数、字符串等。以下是关于Python列表定义、语法和基本操作的详细示例:1.定义列表:   可以使用方括号[]来定义一个列表。......
  • python 字节转化为字符串
    str()在字节转化为字符串时,需要显式地提供encoding参数,否则返回的非正式的字符串表示。官方文档是这样说的:还可以使用decode()方法来将字节转化为字符串参考资料:Pythonstr()——将数据转换为字符串(freecodecamp.org)来自为知笔记(Wiz)......
  • Excel生成sql语句&Python写入数据到数据库
    一、Excel生成sql语句直接按下图步骤操作即可二、Python插入数据库表数据参考博客:https://blog.csdn.net/Q821869063/article/details/1365660211、用excel表准备一份需要插入的数据,如下图2、代码源码如下#--coding=utf-8#导入读取Excel的库fromopenpyxlimportlo......
  • 代码随想录算法训练营Day60 | 84.柱状图中最大的矩形 | Python | 个人记录向
    注:今天是代码随想录训练营的最后一天啦!!!本文目录84.柱状图中最大的矩形做题看文章以往忽略的知识点小结个人体会84.柱状图中最大的矩形代码随想录:84.柱状图中最大的矩形Leetcode:84.柱状图中最大的矩形做题无思路。看文章与42.接雨水很像,42.接雨水是找每个......
  • 【转载】python画带方差的折线图(csdn上最简洁的代码之一附上)
    版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/a1920993165/article/details/122277716python画带方差的折线图画好后效果图(直接一个图的)实现代码如下点击查看代码importnumpyasnpimport......
  • Zemax and Python联用
    透镜面的厚度与材料单透镜:两个面组成,第一个面赋予材料和厚度——即该透镜的材料和厚度;第二个面不需要赋予材料,其厚度为下一个透镜的空气间隔——即下一个物体的起始点以此厚度末端为原点胶合透镜:三个面组成,第一个面和第二个面赋予材料和厚度——即该胶合透镜第一个和第二个的......
  • ### Python 字典操作详解:从创建、增删改查到高级技巧全解析
    1.创建字典使用大括号{}创建空字典empty_dict={}print(empty_dict)#输出:{}使用dict函数创建字典#通过键值对创建字典person=dict(name="Alice",age=30,city="NewYork")print(person)#输出:{'name':'Alice','age':30,'c......
  • ### Python 列表操作详解:从创建、增删到高级技巧全覆盖
    1.创建列表使用list函数创建空列表:empty_list=list()print(empty_list)#输出:[]从字符串创建列表:string="hello"list_from_string=list(string)print(list_from_string)#输出:['h','e','l','l','o']......
  • python常用语法
    Python是一种非常流行的编程语言,因其简洁和易读性而备受欢迎。以下是一些Python的常用语法,涵盖基本语法、数据类型、控制流、函数、类和模块等内容。1.基本语法1.1打印输出print("Hello,world!")1.2变量赋值x=10y=20name="Alice"2.数据类型2.1数字inte......
  • python代码备忘录
    从斐波那契的递归实现到通用递归函数的实现deffibonacci(_target): if_target==0: return1 else returnfibonacci(_target-1)+fibonacci(_target-2) pass fibonacci(10)从上述算法中我们知道,每进入一层递归,递归函数都会在调用自己两次。故此方法实现的......