2017-02-22 8 views
1

水平バープロットのx軸に正の値を設定したいが、どうやって行うのか分からない。水平バープロットの正のxticksのみを設定する

私のプロットの小さな例: enter image description here

が、私はYとY2と、ここで0

そして、私のコードの左側に500から1000で-500と-1000を交換したいと思います値のリスト

y = [-i for i in y] 
    plt.barh(range(1, len(y)+1), y, label="Serie_1") 
    plt.barh(range(1, len(y2)+1), y2, alpha=0.5, color="r", label="Serie_2") 
    plt.axvline(0, color="k") 
    plt.yticks([i+1.5 for i in range(7)], range(7)) 
    plt.title("test") 
    plt.legend() 

私はそれがxticksであることを知っていますが、どうですか?

答えて

0

あなたはその絶対値と事後にラベルテキストを置き換えることができます。

plt.gca().set_xticklabels([abs(x) for x in plt.gca().get_xticks()]) 
+0

ああありがとう!そのような小さな線の長い線。ちょうどそれは浮動小数点値を返すことに注意し、私は小数点を削除するために "int()"を入れます。 – Biopy

0

より柔軟なソリューション:plt.xticksを使用しています。ここにMWEがあります。それが動作

生成
import matplotlib.pylab as plt 

fig, ax = plt.subplots() 

x = range(-5, 5) 
y = range(-5, 5) 

plt.plot(x, y) 
plt.xticks(x, [abs(i) for i in x]) 
plt.show() 

enter image description here

関連する問題