matplotlib の autopct を使うには?
質問
matplotlibの円グラフで、各ウェッジの上に値が書いてあるものを作りたいのですが、どうすればいいですか?
は
ドキュメント
を使うべきであると示唆しています。
autopct
を使うべきであると言っています。
autopct: [ なし | 書式文字列 | 書式関数 ]。 フォーマット関数 ]。 Noneでない場合、ウェッジのラベルに使用される文字列または関数です。 である。ラベルはウェッジの内側に ウェッジの内側に配置されます。もし、それが フォーマット文字列である場合,ラベルは fmt%pct.となります。もしそれが関数であれば,それが が呼び出されます。
残念ながら、この書式文字列や書式関数が何を想定しているかは不明です。
この基本的な例を使って、各数値をウェッジの上に表示するにはどうしたらよいでしょうか。
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels) #autopct??
plt.show()
どのように解決するのですか?
autopct
を使うと、Pythonの文字列書式を使ってパーセント値を表示することができます。例えば、もし
autopct='%.2f'
とすると、各パイ・ウェッジに対して、フォーマット文字列は
'%.2f'
で、そのウェッジのパーセントの数値は
pct
であるため、ウェッジのラベルには文字列
'%.2f'%pct
.
import matplotlib.pyplot as plt
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels, autopct='%.2f')
plt.show()
収量
を呼び出すことで、より複雑なことができます。
autopct
. パーセント値と元の値の両方を表示するには、次のようにすればよいでしょう。
import matplotlib.pyplot as plt
# make the pie circular by setting the aspect ratio to 1
plt.figure(figsize=plt.figaspect(1))
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
def make_autopct(values):
def my_autopct(pct):
total = sum(values)
val = int(round(pct*total/100.0))
return '{p:.2f}% ({v:d})'.format(p=pct,v=val)
return my_autopct
plt.pie(values, labels=labels, autopct=make_autopct(values))
plt.show()
<イグ
再び、それぞれのパイウェッジに対して、matplotlib はパーセント値を提供します。
pct
を引数として与えますが、今回は、それが関数
my_autopct
. ウェッジラベルは
my_autopct(pct)
.
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] データフレームをソートした後にインデックスを更新する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スコーピングルールの簡単な説明?
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。