如何从python中的事件绘图中获取日期时间格式的数据?

2024-10-01 05:01:54 发布

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

我在iPythonDataFrame中有这样的数据

    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如下:

^{pr2}$

我将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)

我想以Date格式或String格式从x轴上获取数据,但是在图形中单击之后,我只有这个

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

如何在String中设置扩展数据的输出?在


Tags: 数据eventdatestringdef格式figbutton
1条回答
网友
1楼 · 发布于 2024-10-01 05:01:54

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

要将得到的“原始”数字转换回日期时间,请使用^{}。在

作为一个与您正在做的类似的例子:

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()

相关问题 更多 >