如何使用Python在一个图形上绘制多种数据?

2024-03-28 20:17:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这可能是一个新手问题,但是我被迫在没有适当背景知识的情况下通过Python学习数据分析(我试过)vb.net版10年前,仅此而已),我需要很快解决一个问题。你知道吗

我被要求绘制一个关于一段时间内车辆速度的图表,从这样一个数据集开始:

ID      CITY   SPEED          TIME
0       Milan   45   25/05/2018 17:35:30
1       Milan   60   25/05/2018 17:35:45
2       Milan   80   25/05/2018 17:36:00
....
2000    Rome    0    25/05/2018 21:05:15
2001    Rome    0    25/05/2018 21:05:30
2002    Rome    0    25/05/2018 21:05:45

我需要分析的每个数据集平均有3000/4000行,并且包含我不需要的列。你知道吗

现在我可以从Excel文件导入数据集了,我创建了3个对象,其中的数据取自我需要的列:

speed = Dataset[['speed']]
time = Dataset[['time']]
city = Dataset[['city']]

我需要的是绘制一个以速度为主要数据的图形,然后是时间(在x轴上)。当速度为0时,我还需要显示城市。你知道吗

我知道如何绘制速度图,但我不知道该怎么做才能得到我需要的时间和城市。你知道吗

应该是这样的: graph I need to obtain

任何帮助都是非常感谢的,因为我不知道我需要做什么才能达到这个结果。你知道吗

提前谢谢!你知道吗


Tags: 数据citynettime时间绘制情况dataset
1条回答
网友
1楼 · 发布于 2024-03-28 20:17:23

首先我假设你的时间数据是字符串格式的?然后您应该将其转换为日期时间格式,如:

Dataset['time'] = pd.to_datetime(Dataset['time'])

完成此操作后,您可以显式绘制随时间变化的速度数据,如:

plt.plot(Dataset['time'], Dataset['speed'])

之后,我会反复

Dataset[Dataset['speed']==0]

打电话给plt.annotate()

在什么样的datasubset上进行迭代取决于你的零速度数据:看起来有几个条目一个接一个,所以你应该先过滤,也许是通过一些Dataset.groupby然后可能只是挑选每个组的first()条目。你知道吗

相关问题 更多 >