matplotlib:重新缩放轴标签
matplotlib: Rescale axis labels
我使用 sklearn.preprocessing
中的 scale 在 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
我的第一个答案是:只保留原始数据的副本。最简单,最pythonic的答案。
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_ticklabels:
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 )
对于打字错误,我深表歉意。
我使用 sklearn.preprocessing
中的 scale 在 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
我的第一个答案是:只保留原始数据的副本。最简单,最pythonic的答案。
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_ticklabels:
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 )
对于打字错误,我深表歉意。