2016-09-16 11 views
2

私はx軸が幾何学的配列で、y軸が0.0と1.0の間の数であるプロットを生成しようとしています。私のコードは次のようになります。あなたが見ることができるようにxticksを値にかかわらず均等に配置するにはどうすればよいですか?

My plot

、私は明示的に設定していますx軸は幾何学に属するものにダニ:このようなプロットを生成

form matplotlib import pyplot as plt 
plt.xticks(X) 
plt.plot(X,Y) 
plt.show() 

シーケンス。

私の質問:シーケンスの最初の項が小さいので、その値にもかかわらず、xティックを均等に配置することができますか?一種の対数スケールのようなもので、ベースの力を扱うのが理想的ですが、幾何学的シーケンスでは理想的ではありません。

答えて

2

曲線をパラメータ化する「自然な」変数の関数として変数をプロットすることで、これを行うことができます。

n = 12 
a = np.arange(n) 
x = 2**a 
y = np.random.rand(n) 

fig = plt.figure(1, figsize=(7,7)) 
ax1 = fig.add_subplot(211) 
ax2 = fig.add_subplot(212) 

ax1.plot(x,y) 
ax1.xaxis.set_ticks(x) 

ax2.plot(a, y) #we plot y as a function of a, which parametrizes x 
ax2.xaxis.set_ticks(a) #set the ticks to be a 
ax2.xaxis.set_ticklabels(x) # change the ticks' names to x 

生成:例えば

enter image description here

+0

Iは、同様pyplot.axes.set_xticks()とpyplot.axes.set_xlabels()を使用して、それを解決しました。私は自分の質問に答えようとしていましたが、あなたが書いたよりはるかに良い、ここで素晴らしい答えを与えました。ありがとう。 – rahul1210

関連する問題