簡體   English   中英

如何更改熊貓時間序列圖的x點的密度?

[英]How do I change the density of x-ticks of a pandas time series plot?

我試圖生成一個可視化的熊貓時間序列的較小圖形。 但是,自動生成的X刻度不會適應新的大小,並導致刻度重疊。 我想知道如何調整X線的頻率? 例如這個例子:

figsize(4, 2)

num = 3000
X = linspace(0, 100, num=num)
dense_ts = pd.DataFrame(sin(X) + 0.1 * np.random.randn(num),
                        pd.date_range('2014-01-1', periods=num, freq='min'))

dense_ts.plot()

我得到的數字是:

x刻度重疊的時間序列圖

我可以使用Matplotlib日期繪圖解決此問題,但這不是一個很好的解決方案-代碼要求我根據情況指定所有輸出格式。

figsize(4, 2)

from matplotlib import dates

fig, ax = plt.subplots()
ax.plot_date(dense_ts.index.to_pydatetime(), dense_ts, 'b-')
ax.xaxis.set_minor_locator(dates.HourLocator(byhour=range(24),
                                           interval=12))
ax.xaxis.set_minor_formatter(dates.DateFormatter('%H:%m'))
ax.xaxis.set_major_locator(dates.WeekdayLocator())
ax.xaxis.set_major_formatter(dates.DateFormatter('\n\n%a\n%Y'))

plt.show()

matplotlib日期解決方案

我想知道是否有辦法使用熊貓plotting模塊或通過設置一些axes對象屬性來解決此問題? 我嘗試過使用ax.freq對象,但是並沒有真正實現任何目的。

您可以傳遞一個要顯示在density_ts.plot()中的x軸值的列表

dense_ts.plot(xticks=['10:01','22:01'...])

為了清楚起見的另一個例子

df = pd.DataFrame(np.random.randn(10,3))

不指定xticks的圖

df.plot(legend=False)

在此處輸入圖片說明

用xticks參數繪制

df.plot(xticks=[2,4,6,8],legend=False)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM