gpt4 book ai didi

python - 如何使用 python 中的事件从绘图中获取 DateTime 格式的数据?

转载 作者:太空宇宙 更新时间:2023-11-03 11:00:02 24 4
gpt4 key购买 nike

我在 iPython DataFrame 中有这样的数据

    Date                        X           Y           Z
0 2015-11-30 20:23:05.556 281.764900 -43.895060 8.714666
1 2015-11-30 20:23:05.757 192.519990 -44.636436 1.720552
2 2015-11-30 20:23:05.958 149.030600 -45.098050 1.958352
3 2015-11-30 20:23:06.171 140.707600 -44.622448 1.510729
4 2015-11-30 20:23:06.366 139.154890 -45.154003 4.783974
5 2015-11-30 20:23:06.564 138.875140 -44.790306 2.266093

列的dtypes是这些:

Date    datetime64[ns]
X float64
Y float64
Z float64
dtype: object

我像这样将 button_press_event 设置为我的 fig

def onclick(event):
print 'button=%d, x=%d, y=%d, xdata=%s, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
cid = fig.canvas.mpl_connect('button_press_event', onclick)

我想从 x 轴获取 Date 格式或 String 格式的数据,但在单击图表后我只有这个

button=1, x=152, y=339, xdata=735932.856811, ydata=8.518828

如何在 String 中设置 xdata 的输出?

最佳答案

Matplotlib 的日期支持早于 numpy 的日期时间支持(并且完全早于 pandas)。因此,它使用其 own internal date convention .

要将您返回的“原始”数字转换为日期时间,请使用 matplotlib.dates.num2date .

作为一个类似于你正在做的例子:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import matplotlib.dates as mdates

def on_click(event):
if event.inaxes is not None:
print mdates.num2date(event.xdata)

t = pd.date_range('2015-11-01', '2016-01-06', freq='H')
y = np.random.normal(0, 1, t.size).cumsum()

df = pd.DataFrame({'Y':y}, index=t)

fig, ax = plt.subplots()
df.plot(ax=ax)
fig.canvas.mpl_connect('button_press_event', on_click)
plt.show()

关于python - 如何使用 python 中的事件从绘图中获取 DateTime 格式的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34725701/

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