在Google Colab中也显示日期时间x轴的鼠标位置

时间:2019-02-27 14:45:34

标签: python jupyter-notebook google-colaboratory mpld3

对于在外部窗口中显示的matplotlib(使用matplotlib.use('TkAgg')),以下代码段也正确显示了日期时间x轴的x / y光标鼠标悬停:

import matplotlib
matplotlib.use('TkAgg')
from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

plt.plot([datetime.now(), datetime(2020,6,6)], [1,2], "-o")
plt.gca().fmt_xdata = lambda x: mdates.num2date(x).strftime("%Y-%m-%d")
plt.show()

(请参阅:https://stackoverflow.com/a/53650695/10698244

对于Google colab,存在一种解决方法,当用鼠标悬停在画布上时,该位置也显示x / y位置(请参阅:https://stackoverflow.com/a/54907775/10698244):

!pip install mpld3
!pip install "git+https://github.com/javadba/mpld3@display_fix"
import mpld3
from mpld3 import plugins
fig, ax = plt.subplots()

df = pd.DataFrame({"a": [1, 2, 3], "b": [40, 5, 60]})

ax.plot(df, "-o", markersize=2)
plugins.connect(fig, plugins.MousePosition(fontsize=14))

mpld3.display()

不幸的是,当使用日期时间轴时,这不起作用。在这种情况下,没有显示x / y光标位置(例如,如果采用了此数据框:)

df2 = pd.DataFrame({"a": [pd.datetime(2019,1,12,5,30,1), pd.datetime(2019,1,13,5,30,1), pd.datetime(2019,1,14,5,30,1)], "b": [40, 5, 60]})
df2.set_index("a",inplace=True)

我的问题是,用鼠标悬停在画布上时,mpld3和日期时间x轴也应正确地位于x / y光标正上方吗?

0 个答案:

没有答案