python 绘制多个折线图,横轴显示为时间

本文介绍如何使用Python读取CSV数据,并绘制多个折线图,其中横轴表示时间。通过matplotlib库,我们可以轻松实现数据的可视化,展示时间序列数据的变化趋势。

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

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
import os
import numpy as np
from matplotlib import pyplot as plt
import pylab as pl

import datetime as dt
import matplotlib as mpl
import matplotlib.dates as mdate
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
from matplotlib.ticker import FormatStrFormatter
from datetime import datetime
import matplotlib.dates as mdates

all_data="SCMP_China_Policy_Uncertainty_Data.csv"

df =pd.read_csv(all_data,encoding="GBK")
x1=df['第一阶段'][:38]
y1=df['China EPU1'][:38]
x2=df['第二阶段'][:38]
y2=df['China EPU2'][:38]
x3=df['第三阶段'][:38]
y3=df['China EPU3'][:38]
x4=df['第四阶段']
Python绘制折线图可以使用matplotlib库来实现。在绘制过程中,动态更新横轴时间可以通过更新横坐标轴的数据来实现。 首先,我们需要导入matplotlib库和相关模块。然后创建一个Figure对象和一个子图,用于绘制折线图。 ```Python import matplotlib.pyplot as plt import datetime fig, ax = plt.subplots() ``` 接下来,我们定义一个函数来更新横轴时间。该函数接收一个整数参数n,表示当前时间距离某一初始时间点的间隔。函数内部使用datetime模块来计算当前时间,并根据n的值动态生成横坐标轴的数据。 ```Python def update_xaxis(n): # 通过当前时间和初始时间的间隔来计算当前时间 current_time = initial_time + datetime.timedelta(minutes=n) # 更新横坐标轴的数据 new_xaxis = [current_time - datetime.timedelta(minutes=i) for i in range(num_points)] ax.set_xlim(new_xaxis[0], new_xaxis[-1]) ax.set_xticklabels(new_xaxis, rotation=45) ``` 在函数中,我们使用initial_time表示初始时间,num_points表示在横坐标轴显示的点的数量。注意,ax.set_xlim()用于设置x轴的范围,ax.set_xticklabels()用于设置横坐标轴的标签。 最后,我们使用FuncAnimation函数来动态更新横轴时间,并绘制折线图。 ```Python from matplotlib.animation import FuncAnimation # 设置初始时间 initial_time = datetime.datetime.now() # 定义折线图的数据 data = [1, 2, 3, 4, 5] # 绘制折线图 line, = ax.plot(data) # 更新横轴时间绘制折线图的动画 ani = FuncAnimation(fig, update_xaxis, frames=range(num_points), interval=1000) plt.show() ``` 在以上代码中,我们使用了FuncAnimation函数来创建一个动画,通过设定interval参数来控制更新的频率。动画会循环执行update_xaxis函数,每次传入一个新的n的值,从而动态更新横轴时间绘制折线图。 总结:通过在绘制折线图的过程中使用datetime模块动态计算时间,并更新横坐标轴的数据,我们可以实现动态更新横轴时间的效果。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

任任任任小娇在学python的路上

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

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

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

打赏作者

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

抵扣说明:

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

余额充值