簡體   English   中英

matplotlib:重新縮放軸標簽

[英]matplotlib: Rescale axis labels

我用刻度sklearn.preprocessing按比例繪制在X軸和Y軸,其壓縮我的數據到我的數據-2 < x < 2 當我繪制這些數據時,我希望將原始比例縮小以用於刻度線。

我的代碼如下:

scale(readings_array, copy=False)
plt.plot(readings_array)
ax = plt.gca()
ax.set_xticklabels(np.arange(0,24))
plt.ylabel("Total Traffic Volume")
plt.xlabel("Time")
plt.show()

看起來像:

情節

我真正想要的是一天中的小時數xlabels為0-> 24(最小值為0),ylabels為0-> 600

我的第一個答案是:僅保留原始數據的副本。 最簡單,最Python化的答案。

scaled_array = scale(readings_array, copy=True)
# do stuff like learning with scaled_array
plt.plot(readings_array)

如果您要避免制作數據副本。 使用StandardScaler()代替scale() 使用縮放數據完成后,可以對數據進行inverse_transform()

scaler = sklearn.preprocessing.StandardScaler(copy=False)
readings_array = scaler.fit_transform( readings_array )
# do stuff with scaled data
readings_for_plotting = scaler.inverse_transform( readings_array )

或使用比例因子創建x_ticks和x_ticklabel:

my_xtick_labels = np.arange(0,25)
my_xticks = (my_xticks*scaler.std_) + scaler.mean_
plt.set_xticks( my_xticks )
plt.set_xticklables( my_xtick_labels )

對於錯別字我深表歉意。

暫無
暫無

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

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