了解对数刻度并实际获取数据的 np.log
Understand log scale and actually taking np.log of a data
我目前正在处理一些实验数据,并且很难理解我是应该做对数刻度还是实际应用 np.log 到数据上。
这是我制作的情节。
蓝色表示使用 plt.yscale('log')
,而橙色表示创建新列并将 np.log
应用于数据。
我的问题
为什么它们的大小如此不同?哪个是正确的?如果使用 plt.yscale('log')
是最佳方式,有没有办法获得这些值,因为我需要在之后进行曲线拟合?
提前感谢任何可以提供一些答案的人!
编辑(1)
我知道 plt.yscale('log')
是以 10 为底,而 np.log
指的是自然对数。我尝试在数据上使用 np.log10
,但它给出的值较小,与使用对数刻度不对应。
您的数据正在日志化但“指向”?方向错误。
考虑这个玩具数据
x = np.linspace(0, 1, 100)[:-1]
y = np.log(1-x) + 5
然后我们绘制
plt.plot(x, y)
如果我对它进行日志缩放:
只是更夸张
plt.plot(x, y)
plt.xscale('log')
您需要像普通日志数据一样将数据指向另一个方向
plt.plot(-x, y)
但是你还必须确保数据是正的或者......你知道......日志和东西¯\_(ツ)_/¯
plt.plot(-x + 1, y)
plt.xscale('log')
我目前正在处理一些实验数据,并且很难理解我是应该做对数刻度还是实际应用 np.log 到数据上。
这是我制作的情节。
蓝色表示使用 plt.yscale('log')
,而橙色表示创建新列并将 np.log
应用于数据。
我的问题
为什么它们的大小如此不同?哪个是正确的?如果使用 plt.yscale('log')
是最佳方式,有没有办法获得这些值,因为我需要在之后进行曲线拟合?
提前感谢任何可以提供一些答案的人!
编辑(1)
我知道 plt.yscale('log')
是以 10 为底,而 np.log
指的是自然对数。我尝试在数据上使用 np.log10
,但它给出的值较小,与使用对数刻度不对应。
您的数据正在日志化但“指向”?方向错误。
考虑这个玩具数据
x = np.linspace(0, 1, 100)[:-1]
y = np.log(1-x) + 5
然后我们绘制
plt.plot(x, y)
如果我对它进行日志缩放:
只是更夸张
plt.plot(x, y)
plt.xscale('log')
您需要像普通日志数据一样将数据指向另一个方向
plt.plot(-x, y)
但是你还必须确保数据是正的或者......你知道......日志和东西¯\_(ツ)_/¯
plt.plot(-x + 1, y)
plt.xscale('log')