我有一个正在开发的应用程序,其中返回带有DatetimeIndex的np.nan的Pandas数据帧是有效的结果。没有用于查询的数据,我需要该图以形成带有DatetimeIndex且没有数据点的轴。这打破了matplotlib关于边界框的想法,该边界框通过将数据转换为浮点数来获得限制。
我认为应该有一个不难看的解决方法,例如设置bbox限制的调用,但到目前为止我还没有弄清楚。
目前,我正在将数据框与另一个具有零的数据框连接起来,然后循环遍历各列以将虚拟列的线型设置为“无”。
# dummy must also be moved to the end of the dataframe to not
# not break the legend in my app.
ax.plot(df)
dummy_line = ax.get_lines()[-1].set_linestyle('None')
这确实是一个丑陋的hack,它使代码更加复杂,并迫使特殊功能对其进行抽象。
Matplotlib的内置功能是否可以更轻松地解决更多问题?
示例
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
index = pd.date_range('2019-01-01T12:00:00', '2019-01-2T12:00:00', freq='3T')
data = [np.nan for i in index]
df = pd.DataFrame({'test':data}, index=index)
fig, ax = plt.subplots(nrows=1)
ax.plot(df)
plt.show()
# Ultimately I want to use date Locators which offer a different
# error b/c there's too many ticks.
版本信息