2017-12-27 48 views
0

私は私が既にあることを変更したarrow_simple_demo.py hereから働いている:matplotlib.axes.Axes.arrowのpythonでkwargsからの使用方法2.7

import matplotlib.pyplot as plt 

ax = plt.axes() 
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1) 

しかし、私は線のスタイルを変更したいですkwargを使用して破線の矢印をクリックします。矢印のドキュメントはそれが可能であることを示唆している。

arrow docsは、だから私は、インポートする** kwargsから引数を矢印与えることを試みた:

kwargs = {linestyle:'--'} 

は今、私のコードは次のようになります。

import matplotlib.pyplot as plt 

ax = plt.axes() 
kwargs={linestyle:'--'} 
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs) 

しかし、結果は次のとおりです。

NameError: name 'linestyle' is not defined 

kwargsを正しく使用しているかどうか誰にでも分かりますか? o importこの作業をするためにmatplotlibのパッチクラスからパッチを適用します。 "kwargsのリストの上の矢印文書にある"その他の有効なkwargs(クラス:Patch) "という文は、必要かもしれないと私に思います。私はその質問を理解するためにパッチのドキュメントを見てきました。 here

編集:私は文字列としてラインスタイルのキーを渡されたとき

コードは終わったが、私は私が望んでいた破線の矢印のラインを取得しておりません。

import matplotlib.pyplot as plt 
ax = plt.axes() 
kwargs={'linestyle':'--'} 
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs) 

画像を参照してください。

arrow plot solid line

答えて

0

あなたkwargs辞書のキーは文字列でなければなりません。あなたのコードでは、Pythonは存在しないlinestyleというオブジェクトを探します。

kwargs = {'linestyle':'--'} 

残念ながら、希望の効果を得るには不十分です。行はダッシュされたですが、矢印は閉じたパスで描画され、ダッシュは互いに重なり合ってエフェクトをキャンセルするという問題があります。太い矢印をプロットすることによって破線を見ることができます。

ax = plt.axes() 
kwargs={'linestyle':'--', 'lw':2, 'width':0.05} 
ax.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, **kwargs) 

enter image description here

あなたは、単純な破線の矢印をしたい場合は、ああ、このような単純なミスannotate

ax = plt.axes() 
kwargs={'linestyle':'--', 'lw':2} 
ax.annotate("", xy=(0.5, 0.5), xytext=(0, 0), 
    arrowprops=dict(arrowstyle="->", **kwargs)) 

enter image description here

+0

を使用して、単純な矢印を使用する必要があります!コードは終了しましたが、なんらかの理由でまだ実線ですか? – AF2k15

+0

あなたのアドバイスを反映した質問に私の編集を見てください。あなたのシステムで矢線がまだ堅かったことを確認できますか?それはまだ私の上に固体を示しています。 – AF2k15

+0

私の答えの詳細を参照 –

関連する問題