2016-09-12 33 views
0

私はmatplotlibを使って簡単なプロットを実行しました。 x軸とy軸はそれぞれ0,0から始まります。 matplotlibプロットは、2つの軸に対応する2つのゼロを示しています。私は1つだけゼロ(可能であれば、開始点の中央のどこか)を欲しい。 これはどのように行うことができますか?python matplotlibプロットの単一原点値

は、ここで私が使用したものです:

import matplotlib.pyplot as plt 

plt.plot([1,2,3], [4,5,6]) 
plt.xlim([0,5]) 
plt.ylim([0,10]) 
plt.show() 

Matplotlib Plot

UPDATE:私は@nostradamus'ソリューションを使用し、それがゼロの1を処分した

。可能であればゼロを中心にしたい。

は、私が使用:

plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.gca().yaxis.get_majorticklabels()[0].set_x(-0.05) 

enter image description here

私はこれの逆をしたいです。 y軸上のゼロを下に移動するか、x軸上のゼロを左に移動します。試した:

plt.gca().yaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.gca().xaxis.get_majorticklabels()[0].set_x(-0.05) 

これは動作しません。私はゼロの下と左の境界は、彼らが領域を超えていないことを確認するために設定されていると思う。

答えて

1

キーワードはpruneで、upper,lowerまたはbothのティックラベルを削除できます。ここで、x軸の0を取り除く作業の例である:

import matplotlib.pyplot as plt 
from matplotlib.ticker import MaxNLocator 

plt.plot([1,2,3], [4,5,6]) 
plt.xlim([0,5]) 
plt.ylim([0,10]) 
plt.gca().xaxis.set_major_locator(MaxNLocator(prune='lower')) 
plt.show() 

第2の部分は(隅に残りゼロを移動するため)はるかに困難であると思われます。あなたが(すなわちplt.gca().yaxis.get_majorticklabels()[0].set_y(-0.05)は何もしていない)

plt.gca().yaxis.get_majorticklabels()[0].set_x(-0.05) 

は、しかし、私は、対応する軸の下限を下回ると、それを移動する方法を見つけ出すことができませんでした使用して、単一の目盛りラベルを動かすことができるようです。

+0

ありがとうございます。私はプルーンについて知らなかった。そして、それはpyplotを使用して作成されたグラフを編集することは本当に難しいようです –

関連する問題