from pylab import *
# Generate random test data in your range
N = 200
epsilon = 10**(-9.0)
X = epsilon*(50*random(N) + 1)
Y = random(N)
# X2 now has the "units" of nanometers by scaling X
X2 = (1/epsilon) * X
subplot(121)
scatter(X,Y)
xlim(epsilon,50*epsilon)
xlabel("meters")
subplot(122)
scatter(X2,Y)
xlim(1, 50)
xlabel("nanometers")
show()
正如您所注意到的,
xscale
和yscale
不支持简单的线性重新缩放(不幸的是)。作为Hooked答案的替代方案,您可以欺骗标签,比如:显示x和y缩放的完整示例:
最后我得到了一张照片的学分:
注意,如果像我一样有
text.usetex: true
,您可能需要将标签括在$
中,就像这样:'${0:g}$'
。与其改变刻度,不如改变单位?制作一个单独的x值数组
X
,其单位为nm。这样,当你绘制数据时,它已经是正确的格式了!只需确保添加一个xlabel
来指示单位(无论如何都应该始终)。要设置x轴的范围,可以使用
set_xlim(left, right)
,here are the docs更新:
看起来你想要一个相同的图,但是只需要改变“刻度值”,你可以通过获取刻度值,然后把它们改变成你想要的。所以为了满足你的需要
相关问题 更多 >
编程相关推荐