Показывать положение мыши также для оси X даты и времени в Google Colab - PullRequest
0 голосов
/ 27 февраля 2019

Для matplotlib, который отображается во внешнем окне (с использованием matplotlib.use('TkAgg')), следующий фрагмент кода правильно показывает курсор мыши x / y и для оси x даты и времени:

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 даты и времени правильную позицию курсора х / у при наведении курсора мышью на холст?

...