0

所以我想改变数字在 x 和 y 轴上的显示方式。我要么不希望任何权力被代表,要么希望每个单独的勾号中的权力。这可能吗?

indx = np.where(time > 0.28549) # indexs where i want to zoom in
plt.plot(time[indx], dist[indx], label='Without air resistance')
plt.plot(time[indx], distd[indx], label='With air resistance')
plt.xlabel('Time / s')
plt.ylabel('Distance from $y_0$ / m')
plt.ticklabel_format(style='plain')
plt.title('A closer look at the distance-time graph')
plt.legend()
print(time[-1])

图形

谢谢。

4

1 回答 1

0

您可以使用刻度格式化程序

from matplotlib.ticker import FormatStrFormatter

time = np.linspace(0.285489, 0.285493, 100)
dist = 2*time
distd = 2*time+0.0000025
indx = np.where(time > 0.28549) # indexs where i want to zoom in
plt.plot(time[indx], dist[indx], label='Without air resistance')
plt.plot(time[indx], distd[indx], label='With air resistance')
plt.xlabel('Time / s')
plt.ylabel('Distance from $y_0$ / m')
plt.ticklabel_format(style='plain')

### Format the tick labels, does nothing to the value.
plt.gca().xaxis.set_major_formatter(FormatStrFormatter('%.7f'))
plt.gca().yaxis.set_major_formatter(FormatStrFormatter('%.7f'))

plt.title('A closer look at the distance-time graph')
plt.legend()

在此处输入图像描述

然而,就个人观点而言,我认为 matplotlib 默认看起来更好,因为考虑到如此令人分心的小数位数,它可以更容易地计算出刻度间隔。

于 2020-11-26T02:51:29.183 回答