我知道,有可能通過手動設置他們改變軸標籤。 (例如: - Modify tick label text)Matplotlib:自動修改軸標籤
然而,這顯然只有當你知道你想要什麼標籤,這是不適合我的情況下工作。
這裏是想什麼,我要完成一個例子: 我有兩個numpy的數組:x
包含1和366之間的數字(但不一定是全部),較2016年「Y」天包含一些其他的號碼。我想提出的散點圖「Y」與「X」:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([27, 38, 100, 300])
y = np.array([0.5, 2.5, 1.0, 0.8])
plt.scatter(x, y)
毫不奇怪,這產生在0與蜱的圖表,50,100,...,350我想將這些刻度標籤更改爲單獨的日期。 (例如,在50刻度會被貼上類似「2月19日」)。假設我有一個函數tick_to_date
一種能將數字0爲日期字符串,所以它會是容易的,我手動更改所有的蜱我圖形。 (如果您需要佔位符功能:tick_to_date = lambda x: ("day " + str(x))
)
ax = plt.gca()
ax.set_xticklabels([tick_to_date(tick.get_text()) for tick in ax.get_xticklabels()])
但是,這隻能做一次。如果我現在放大,或進行改變蜱任何行動,新的刻度標記都不會是什麼,我想他們是。
理想的情況下,而不是手動設置的標籤,我會告訴軸線總是用我自己的tick_to_date
功能改造刻度標記。另外,調用每次蜱改變時,上面一行代碼,但我不知道會這麼好。這些可能/可行/愉快可用嗎?