我想繪製一些使用matplotlib存儲在熊貓數據框中的數據。我想把特定的標籤放在x軸刻度上。所以,我把他們:在matplotlib圖中勾選標籤文本和頻率
ax.xaxis.set_ticklabels(data_frame['labels'])
行之有效,但它爲每個數據點蜱標籤,使得情節不可讀,所以我嘗試:
ax.locator_params(axis='x', nbins=3)
從而減少數量如果標籤是a,b,c,d,e ...,x,y,z我得到標籤a,b,c而不是a,m, z或類似的東西)。我的下一個想法是設置刻度標籤位置:
ax.xaxis.set_ticks(data_frame.index.values)
但它不起作用。
什麼工作原理是:
ax.xaxis.set_ticklabels(data_frame['labels'][::step])
ax.xaxis.set_ticks(data_frame.index.values[::step])
不設置任何locator_params
。
這幾乎是完美的。它修復了刻度和標籤,但是當我放大繪圖(使用matplotlib交互式窗口)時,新標籤顯然不出現。而我需要的是可讀的刻度,它可以根據繪圖縮放來調整自己(這是ax.locator_params(axis='x', nbins=3)
沒有任何自定義標籤的情況下正確執行的操作)。換句話說:我需要爲每個數據點設置特定的標籤,但在繪圖座標軸上只顯示其中的一小部分,而不會丟失正確的分配。
我有問題,理解你想要什麼。爲什麼當你實際上只想要數據點位置的標籤時,你想要出現新的標籤?這聽起來與我矛盾。 – ImportanceOfBeingErnest
@ michal-2am我的回答是否回答您的問題? – mhoff