【发布时间】:2021-09-28 10:09:35
【问题描述】:
正如https://stackoverflow.com/a/47850534 的回答所指出的,np.log(x) 与在对数刻度上绘制 x 不同。
给定(相同的)数据数组:
x = [2, 1, 76, 140, 286, 267, 60, 271, 5, 13, 9, 76, 77, 6, 2, 27, 22, 1, 12, 7, 19, 81, 11, 173, 13, 7, 16, 19, 23, 197, 167, 1]
直接绘制数据有这样的图表:
plt.plot(x)
plt.show()
使用“对数”比例如下:
plt.plot(x)
plt.xscale('log')
plt.show()
绘图 np.log(x) 做了完全不同的事情:
plt.plot(np.log(x))
plt.show()
是否有一个函数可以重新调整对数空间中的数组值,或者这需要插值之类的东西吗?
【问题讨论】:
-
您不想在第二个示例中使用
plt.yscale('log')而不是plt.xscale('log')吗? -
@samgiz 或者/两者都会是有用的答案。问题不在于让 matplotlib 缩放轴,而是转换数据本身。
标签: python numpy matplotlib plot