2017-06-28 12 views
1

私は完璧に傷ついている円のグラフィックをやっていますが、真ん中に白い円を付け加えて犬のように見えます。Matplotlibピクチャを追加するときに円グラフのサイズを変更する

最後に、見つかった例の図の中央に画像を追加します。この例では、完璧な円を楕円にリサイズします。

Picsの:

Perfect Circle

enter image description here

コード:

>newax = fig.add_axes([0.33,0.36,0.37,0.30], anchor='SE', zorder=1) 

> labels = df.index.values 
>sizes = (1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1,1) 
> 
> DonutA = plt.pie(sizes, colors=df.ColorCond.map({True :'g', False : 
> 'r'}), shadow=False, 
>     wedgeprops = { 'linewidth' : 1 , 'edgecolor' : 'lightgrey'}, radius=1) 
> 
> #draw a circle at the center of pie to make it look like a donut centre_circle = plt.Circle((0,0),0.75,color='white', 
> fc='white',linewidth=1) fig = plt.gcf() 
> fig.gca().add_artist(centre_circle) im = 
> plt.imread(get_sample_data('C:\\Users\\Usuario\\Desktop\\Sanmatech\\A2.png')) 
> newax = fig.add_axes([0.33,0.36,0.37,0.30], anchor='SE', zorder=1) 
> newax.imshow(im, extent=(30, 50, 30, 50)) plt.axis('equal') 
> newax.axis('off') 
> 
> # Set aspect ratio to be equal so that pie is drawn as a circle. 
> 
> plt.show() 

は本当に私はそのラインを明確に持っている、これで少しstruggline

幸運にも数日間プレーしています:

+1

だけで円グラフを使用しないでください。特に、多くのカテゴリ/変数で何かを描写する。また、このアプローチで[chart junk](https://en.wikipedia.org/wiki/Chartjunk)に傾いているかもしれません。 – Grr

+0

あなたはそれが理にかなっていると思うなら、円グラフを使用してください。私たちはそれを裁く立場にはいません@Grr – ImportanceOfBeingErnest

答えて

1

円を配置する軸にplt.axis('equal')でアスペクトを設定する必要があります。これは、パイの作成の直前または直後にこの行を配置することで簡単に実行できます。

plt.axis('equal') 
DonutA = plt.pie(sizes, colors=colors, shadow=False, 
       wedgeprops = { 'linewidth' : 1 , 'edgecolor' : 'lightgrey'}, radius=1) 

Aという文字をプロットに配置するには、イメージは必要ありません。

コンプリート例:

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

sizes = (1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1, 1, 1, 1,1,1) 
colors = np.random.choice(["r", "g"], size=len(sizes)) 

plt.axis('equal') 
DonutA = plt.pie(sizes, colors=colors, shadow=False, 
       wedgeprops = { 'linewidth' : 1 , 'edgecolor' : 'lightgrey'}, radius=1) 

#draw a circle at the center of pie to make it look like a donut 
centre_circle = plt.Circle((0,0),0.75,color='white', fc='white',linewidth=1) 
fig = plt.gcf() 
fig.gca().add_artist(centre_circle) 

import matplotlib.patheffects as path_effects 
text = plt.gca().text(0.0, 0.0, 'A', color='white', ha='center', va='center', size=100) 
text.set_path_effects([path_effects.Stroke(linewidth=3, foreground='black'), 
         path_effects.Normal()]) 

plt.show() 

enter image description here

+0

ありがとう、男! matlplotlibをもう少し見ていく必要があり、どのように機能するのか、あなたはどうやって自分で学びましたか?あなたが共有できるドキュメントがあれば、私はとても感謝しています! –

+1

個人的には、私はやって学びました。 matplotlibのドキュメント自体はとても良くて便利です。また、matplotlibページのチュートリアルもあります。加えて、使用例が数多くあるサンプルギャラリーがあります。私が知る限り、YouTube上のmatplotlibとチュートリアルのビデオについては、多くの文献があります。最後に、matplotlibは既に成熟しているので、SOに関する多くの質問があります。 – ImportanceOfBeingErnest

関連する問題