2016-12-08 9 views
2

軸ラベルを変更し、我々は右下の現在の(x、y)の値を持つときPyPlotは、読者台無し座標: Note boxpyplotをプロットする際に一般的に

しかし、あなたが再ラベル付けた場合はどうなりますか?コード:

import matplotlib.pyplot as plt 
plt.ion() 
plt.draw() 
plt.plot([(i,i) for i in range(10)]) 
plt.gca().set_xticklabels((1,2,3,4,5,6,7,8,9,10)) 
plt.draw() 

あなたが取得していない:

Not good

あなたはxの値が台無しにされて見ての通り、つまり、もはや表示されます。これは非数値ラベリングには意味があるかもしれませんし、扱いにくいかもしれませんが、実際には双軸で作業している間にこれが起こりました。これは最初の変形である必要があります。私が双子のラベルをつけると、たとえ主軸が触れられていなくても、座標は表示されません。 座標表示機能を取得する方法はありますか?。双軸を作成して変更するコードがあると感じたら、教えてください。

+0

'set_xticklabels'はラベルのみを変更します。 x値が壊れているということをどのように意味しますか?ポイントはラベルに基づいて間違って配置されていますか? –

+0

私は何が起こったかを正確に示した画像を投稿しました.x座標は表示されません。明らかにラベルを変更するだけではありません。 – kabanus

+0

彼らは現れそうですか?最初のxの範囲は0から始まり、2番目のプロットは1から始まります。 –

答えて

0

set_xticklabelsを使用すると、使用するフォーマッタが上書きされます。だから、再設定する必要があります。

plt.gca().xaxis.set_major_formatter(FormatStrFormatter('%.5f')) 

あなたが何らかの形で変換された値を表示したい場合、あなたはダニや位置の関数を受け入れ、そしてラベルを返しFuncFormatterを、使用する必要があります。それについてはhereを読んでください。

plt.gca().xaxis.set_major_formatter(FuncFormatter(
     lambda t,p,f=yourfunc: ScalarFormatter().format_data_short(f(t)))) 

おそらくScalarFormatter外を初期化したい:素敵なスカラーの書式とそれを組み合わせるには(リンクでも)あなたのようなものを使用することができます。

+0

FuncFormatterについては、将来の見解のためにあなたの答えに言及できますか?残念ながら、この半分は私の問題を解決します。ツイン軸を作成すると、下に印刷された座標がその軸に関連付けられているように見えます。私は 'plt.axes(originalaxes)'を使用しようとしましたが、それは助けになりませんでした。あなたはそれをどのように修正するか考えていますか?長い間別の質問を掲載します。さもなければ、私はこれを編集します。いずれにせよ、FuncFormatterを表示すると、私はあなたの答えを受け入れます。 – kabanus

+1

修正を見つけた - 私は図から元の軸を削除し、それらを元に戻します。一種の馬鹿。とにかく私の編集を受け入れてください。 – kabanus

関連する問題