2017-02-13 15 views
0

matplotlibのデフォルトのプロットスタイルを設定して、パブリケーション品質の数値を設定する関数のセットを定義しようとしています。私はrcコマンド(またはmatplotlib.rcParams['key'] = value)を使ってこれをやっています。 matplotlib.rcParams.keys()を使用して利用可能なオプションのリストを見つけました。たぶん私は何かが欠けているかもしれませんが、scattererrorbarのようなものではいくつかのオプションが欠けているようです。例えばエラーバーのデフォルト設定rcParams matplotlib

from matplotlib import rc, cycler 

# DATA GLOBALS 
DATA_LINE_COLOR = 'black' 
DATA_LINE_STYLE = '-' 
DATA_LINE_WIDTH = 0.5 
MODEL_LINE_COLOR = 'red' 
MODEL_LINE_STYLE = '-' 
MODEL_LINE_WIDTH = 0.7 

# AXES GLOBALS 
AXES_LINE_WIDTH = 0.5 
AXES_MAJOR_TICK_LENGTH = 5 
AXES_MINOR_TICK_LENGTH = AXES_MAJOR_TICK_LENGTH/2. 
AXES_TICK_DIRECTION = 'in' 

# FIGURE GLOBALS 
ONE_COL_WIDTH = 3.46 
TWO_COL_WIDTH = 7.09 
DPI = 800 

def general(): 
    """ 
    General settings for all plot types. Call this first, 
    then call any cascading style required 
    """ 
    rc('font', family='Times New Roman', size=10) 
    rc('text', color='black') 
    rc('figure', dpi=DPI) 
    rc('axes', 
     xmargin=0.05, 
     ymargin=0.05, 
     linewidth=AXES_LINE_WIDTH, 
     prop_cycle=cycler('color',['black'])) 
    rc('axes.formatter', limits=(-4, 4)) 
    rc('xtick', direction=AXES_TICK_DIRECTION) 
    rc('xtick.major', 
     size=AXES_MAJOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('xtick.minor', 
     visible=True, 
     size=AXES_MINOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('ytick', direction=AXES_TICK_DIRECTION) 
    rc('ytick.major', 
     size=AXES_MAJOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('ytick.minor', 
     visible=True, 
     size=AXES_MINOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 

errorbarの場合errorbar.capsizeで調整する唯一のオプションがあります。私はerrorbar.ecolorerrorbar.elinewidthなどの他のオプションを期待していたでしょう。rcパラメータでこれらのデフォルトを設定することは可能ですか?他の場所から継承されているかもしれませんか?

ax.errorbarを呼び出すたびに明示的に設定できることは分かっていますが、同僚とデフォルトのパラメータを設定する一連の関数を共有したいので、一貫性のある数値を生成できます。

答えて

1

ドキュメントからplt.errorbarまでは、これらの値がどこから継承されているかを確認できます。

ecolor:MPL色、オプション、デフォルト:なし

色をエラーバーラインを与えるmatplotlibの色引数。 なしの場合、マーカーを接続する線の色を使用します。

elinewidth:スカラー、オプション、デフォルト:なし

エラーバーのデータラインの線幅。 なしの場合は、線幅を使用します。

capthick:スカラー、オプション、デフォルト:なし

別名kwargがmarkeredgewidthする(別称 - 松下電工)。この設定は、エラーバーのキャップの厚さをポイント単位で制御するプロパティのより賢明な名前です。下位互換性のために、mewまたはmarkeredgewidthが指定されていれば、それらはcapthickをオーバーライドします。これは将来のリリースで変更される可能性があります。

だから、あなたはlines.color rcParam、lines.linewidth rcParamを使用してエラーバーの線幅を使用して、色、およびlines.markeredgewidth rcParamを使用してキャップの厚さを制御することができるはずです。

明らかにこれらはプロット内の他のプロパティに悪影響を与える可能性がありますが、これらのプロパティも変更せずにrcParamsを使用して制御することはできません。

+0

あなたの答えをありがとう。それを回線にリンクするのは奇妙に思われますが、デフォルトを明示的に異なるように設定する機能はありません。たとえば、薄い灰色の棒と黒い点をプロットすることによって、エラーバーの強調表示を削除したい場合は、エラーバーの線を設定すると、プロット内の他の線が消えます。多分、これをより柔軟にするためにmatplotlibで改善する余地があります。私は問題トラッカーでこれを提案することができます。 –

関連する問題