Pythonでプロットを作成しています。係数で軸を再スケーリングする方法はありますか? yscale
およびコマンドではxscale
、ログ スケールをオフにすることしかできません。
編集:
たとえば。スケールが 1 nm から 50 nm になるプロットがある場合x
、x スケールは 1x10^(-9) から 50x10^(-9) の範囲になり、1 から 50 に変更したい。プロットに配置された x 値を 10^(-9) で割るプロット関数
Pythonでプロットを作成しています。係数で軸を再スケーリングする方法はありますか? yscale
およびコマンドではxscale
、ログ スケールをオフにすることしかできません。
編集:
たとえば。スケールが 1 nm から 50 nm になるプロットがある場合x
、x スケールは 1x10^(-9) から 50x10^(-9) の範囲になり、1 から 50 に変更したい。プロットに配置された x 値を 10^(-9) で割るプロット関数
ティックを変更する代わりに、代わりに単位を変更してみませんか? X
単位が nm の x 値の別の配列を作成します。このようにして、データをプロットすると、すでに正しい形式になっています! xlabel
単位を示すために必ず a を追加してください (とにかく常に実行する必要があります)。
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()
x軸の範囲を設定するには、を使用できますset_xlim(left, right)
。ドキュメントは次のとおりです
アップデート:
同じプロットが必要なように見えますが、「目盛り値」のみを変更します。目盛り値を取得してから、それらを必要なものに変更するだけでそれを行うことができます。したがって、必要に応じて次のようになります。
ticks = your_plot.get_xticks()*10**9
your_plot.set_xticklabels(ticks)