import matplotlib.pyplot as plt
import numpy as np
plt.gca().set_yscale('log')
x = np.arange(0, 51, 10)
y = np.exp(x)
plt.plot(x, y, 'k-')
plt.show()
这是一些证据。
如果要绘制具有已知y值和未知x值的直线,请执行相反的操作。
import matplotlib.pyplot as plt
import numpy as np
plt.gca().set_yscale('log')
y = np.arange(0, 1001, 100)
x = np.log(y)
plt.plot(x, y, 'k-')
plt.show()
好吧,就用我目前所知道的来回答这个问题。
为了在半对数上画一条直线,主要有两种方法。如果您有一个x值列表,并且想要得到相应的y值,它将绘制一条直线,那么您只需对每个x值调用numpy.exp()。
这是一些证据。
如果要绘制具有已知y值和未知x值的直线,请执行相反的操作。
这是更多的证据。
现在,在偏斜t的情况下,还有更多的工作要做。当生成一个skew-t时,您需要同时从一个已知的y值和一个已知的x值开始工作。下面是一个示例函数,它接受一个温度(x值)和一个级别(y值),并返回适当的倾斜x值。
该函数接受数据应标绘的级别和温度值。
这个函数看起来相当复杂,但这是因为当您通过调用y值上的np.log()在semilog上创建一条直线时,x值将远离它需要的位置。所以你需要找出实际值和应该值之间的区别。无论在哪个级别绘制数据,都知道应在最低级别绘制数据的位置,因此在将其应用于较高级别之前,必须在最低级别找到差异。
一旦知道了“偏移量”,就可以补偿所有倾斜x值的差异。这些值乘以-30的原因是特定于应用程序的。此数字需要根据绘图的y限制和x限制进行更改。
np.log(1000)中的“1000”也可能需要根据绘图进行更改。这应该是skew-t图上的最低水平(最高y值)。
关键是,如果您知道应该在什么温度上绘制数据,以及希望在什么级别上绘制数据,则此函数将正确地扭曲该值(当然,当-30是针对您的特定绘图进行调整时)。
要查看函数的运行情况,下面是在500层绘制温度为10的数据点的效果。
蓝点表示数据点的绘制位置。
也许有一个更优雅的解决方案,但这是我现在拥有的最好的。
相关问题 更多 >
编程相关推荐