gpt4 book ai didi

python - CSV 数据(时间戳和事件)的时间序列图 : x-label constant

转载 作者:太空狗 更新时间:2023-10-29 20:23:46 25 4
gpt4 key购买 nike

(本题可单独阅读,但为:Timeseries from CSV data (Timestamp and events)的续集)

我想使用 python 的 pandas 模块(参见下面的链接)通过时间序列表示来可视化 CSV 数据(来自 2 个文件)。

df1的示例数据:

             TIMESTAMP  eventid
0 2017-03-20 02:38:24 1
1 2017-03-21 05:59:41 1
2 2017-03-23 12:59:58 1
3 2017-03-24 01:00:07 1
4 2017-03-27 03:00:13 1

“eventid”列始终包含值 1,我试图显示数据集中每一天的事件总和。第二个数据集 df0 具有相似的结构,但仅包含零:

df0 的示例数据:

             TIMESTAMP  eventid
0 2017-03-21 01:38:24 0
1 2017-03-21 03:59:41 0
2 2017-03-22 11:59:58 0
3 2017-03-24 01:03:07 0
4 2017-03-26 03:50:13 0

x轴标签只显示相同的日期,我的问题是:如何显示不同的日期? (是什么导致同一个日期在x个标签上多次显示?)

到目前为止的脚本:

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

df1 = pd.read_csv('timestamp01.csv', parse_dates=True, index_col='TIMESTAMP')
df0 = pd.read_csv('timestamp00.csv', parse_dates=True, index_col='TIMESTAMP')

f, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot(df0.resample('D').size())

ax1.set_xlim([pd.to_datetime('2017-01-27'), pd.to_datetime('2017-04-30')])

ax1.xaxis.set_major_formatter(ticker.FixedFormatter
(df0.index.strftime('%Y-%m-%d')))

plt.setp(ax1.xaxis.get_majorticklabels(), rotation=15)

ax2.plot(df1.resample('D').size())
ax2.set_xlim([pd.to_datetime('2017-03-22'), pd.to_datetime('2017-04-29')])
ax2.xaxis.set_major_formatter(ticker.FixedFormatter(df1.index.strftime
('%Y-%m-%d')))
plt.setp(ax2.xaxis.get_majorticklabels(), rotation=15)
plt.show()

输出:(https://www.dropbox.com/s/z21koflkzglm6c3/figure_1.png?dl=0) enter image description here

我尝试访问的链接:

非常感谢任何帮助。

最佳答案

为了使示例可重现,我们可以创建以下文本文件 (data/timestamp01.csv):

TIMESTAMP;eventid
2017-03-20 02:38:24;1
2017-03-21 05:59:41;1
2017-03-23 12:59:58;1
2017-03-24 01:00:07;1
2017-03-27 03:00:13;1

(与 data/timestamp00.csv 相同)。然后我们可以读入

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

df1 = pd.read_csv('data/timestamp01.csv', parse_dates=True, index_col='TIMESTAMP', sep=";")
df0 = pd.read_csv('data/timestamp00.csv', parse_dates=True, index_col='TIMESTAMP', sep=";")

绘制它们

f, (ax1, ax2) = plt.subplots(1, 2)

ax1.plot(df0.resample('D').size())
ax2.plot(df1.resample('D').size())

plt.setp(ax1.xaxis.get_majorticklabels(), rotation=30, ha="right")
plt.setp(ax2.xaxis.get_majorticklabels(), rotation=30, ha="right")
plt.show()

结果

enter image description here

这是想要的情节。

关于python - CSV 数据(时间戳和事件)的时间序列图 : x-label constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com