2013-12-12 14 views
7

matplotlib円グラフの線をもっと明るくしたいです。私は非常に多くのスライスを持っているので、ここで示したように、ラインが、あまりにも厚いです:matplotlib円グラフの線プロパティを変更する

matplotlib.rcParams['text.color'] = 'r' 
matplotlib.rcParams['lines.linewidth'] = 2 

が、私は変更することができます:

enter image description here

私はこのようなrcparamを使用して示唆しているthis exampleを読みますテキストの色では、円のスライス間の線の幅は変更されません。スライスは線オブジェクトではなくウェッジオブジェクトによって管理されているからだと私は信じています。だからウェッジの境界線のスタイルと色を設定する方法はありますか?

どうもありがとう、 アレックス

答えて

11

はこれを試してください:あなたが唯一のaxesオブジェクトを持っている場合は、さらに

ax = plt.subplot(111) 
wedges, texts = ax.pie(np.abs(np.random.randn(5))) 

for w in wedges: 
    w.set_linewidth(2) 
    w.set_edgecolor('cyan') 

pie

をし、パイのくさびへの直接アクセスを持っていないあなたウェッジをax.patchesから取得できます。

wedges = [patch for patch in ax.patches if isinstance(patch, matplotlib.patches.Wedge)] 
+0

おそらく、 'pie'を呼び出すときに' linewidth'を渡すこともできます。 – tacaswell

+0

@tcaswellはmatplotlib '1.3.1'でそれを試しましたが、うまくいきませんでした。 –

+1

ええ、それは奇妙です。プロットの署名のほとんどは '' kwarg'を持っていますが、 '' pie''はありません。今日は時間があれば、これについて何かできるかもしれません。 – tacaswell

5

このパーティーに遅刻イムが、ちょうど円グラフのため、代わりに使用する、ことがわかった:あなたが使用することができます

plt.rcParams['lines.linewidth'] = 2 

plt.rcParams['patch.linewidth'] = 0 

をまた、円グラフの線の色を変更するにはこれを使用する:

plt.rcParams['patch.edgecolor'] = 'white' 

の代わりに:

plt.rcParams['line.color'] = 'white' 
+0

基本的なニーズに対して上記よりもはるかに直観的で簡単です。 – Konrad

関連する問題