Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?


はじめに..

あなたの最も好きなチャートタイプは何ですか?経営陣やビジネスアナリストにこの質問をすると、すぐに答えは円グラフになります。これは、パーセンテージを表示する非常に一般的な方法です。

その方法..

1.次のコマンドでmatplotlibをインストールします。

pip install matplotlib

2.matplotlibをインポートする

import matplotlib.pyplot as plt

3.一時データを準備します。

tennis_stats = (('Federer', 20),('Nadal', 20),('Djokovic', 17),('Murray', 3),)

4.次のステップはデータを準備することです。

titles = [title for player, title in tennis_stats]
players = [player for player, title in tennis_stats]

5.値をタイトル、ラベルをプレーヤー名として円グラフを作成します。

autopctパラメーター-値をフォーマットして、小数点以下1桁までのパーセンテージとして表示します。 axis('equals')-円グラフが丸く見えるようにします。 .show-結果のグラフを表示します。

注- .showを実行すると、プログラムの実行がブロックされます。ウィンドウを閉じると、プログラムが再開されます。

plt.pie(titles, labels=players, autopct='%1.1f%%')
plt.gca().axis('equal')


(-1.1000000175619362,
1.1000000072592333,
-1.1090350248729983,
1.100430247887797)

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?

6.グラフを表示します。

plt.show()

7.パイをいじくり回すための興味深いパラメータがいくつかあります。 startangle-くさび/円の始点を回転します。
反時計回り-設定する方向。デフォルトはTrueです。

plt.pie(titles, labels=players, startangle=60, counterclock=False,autopct='%1.1f%%')
plt.show()

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?

8.私のような一部の人々にとって、パーセンテージは何の意味もありません。出力グラフは、コードの奥深くに隠れている値の手がかりがない人に送信されることを覚えておいてください。したがって、パイの分割方法から明らかなパーセンテージの代わりに、実際のタイトルを表示できますか?。

カスタム関数を作成する必要があるので、これは少し注意が必要です。以下をご覧ください。

カスタム関数-format_valuesを作成して、キーをパーセンテージで持つ辞書を作成し、参照された値を取得できるようにします。

from matplotlib.ticker import FuncFormatter
total = sum(title for player, title in tennis_stats)
print(total)
values = {int(100 * title / total): title for player, title in tennis_stats}
print(values)

def format_values(percent, **kwargs):
value = values[int(percent)]
return '{}'.format(value)

# explode to seperate the pie/wedges.
explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)

plt.show()

# the more the value the more farther it will be seperated.
explode = (0.3, 0.2, 0.0, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)


60
{33: 20, 28: 17, 5: 3}

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?

([<matplotlib.patches.Wedge at 0x2279cf8dd00>,
<matplotlib.patches.Wedge at 0x2279cf9b1f0>,
<matplotlib.patches.Wedge at 0x2279cf9b8b0>,
<matplotlib.patches.Wedge at 0x2279cf9bf70>],
[Text(0.6999999621611965, 1.2124355871444568, 'Federer'),
Text(-1.2999999999999945, -1.2171478395895002e-07, 'Nadal'),
Text(0.39420486628845763, -1.0269384223966398, 'Djokovic'),
Text(1.086457194390738, -0.17207778693546258, 'Murray')],
[Text(0.44999997567505484, 0.7794228774500078, '20'),
Text(-0.7999999999999966, -7.490140551320001e-08, '20'),
Text(0.2150208361573405, -0.5601482303981671, '17'),
Text(0.5926130151222206, -0.09386061105570685, '3')])

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?

最後に、すべてをまとめます。

# imports
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter

# prepare data
tennis_stats = (('Federer', 20),('Nadal', 20),('Djokovic', 17),('Murray', 3),)

titles = [title for player, title in tennis_stats]
players = [player for player, title in tennis_stats]

total = sum(title for player, title in tennis_stats)
values = {int(100 * title / total): title for player, title in tennis_stats}

# custom function
def format_values(percent, **kwargs):
value = values[int(percent)]
return '{}'.format(value)

# explode to seperate the pie/wedges.
explode = (0, 0, 0.1, 0.0)
plt.pie(titles, labels=players, explode=explode, autopct=format_values)

plt.show()

Python Matplotlibで強調表示された単一の円で円グラフをプロットするにはどうすればよいですか?


  1. Matplotlib Pythonで円グラフを表示するにはどうすればよいですか?

    Matplotlibは、データの視覚化に使用される人気のあるPythonパッケージです。データの視覚化は、実際に数値を調べたり複雑な計算を実行したりすることなく、データで何が起こっているのかを理解するのに役立つため、重要なステップです。定量的な洞察を聴衆に効果的に伝えるのに役立ちます。 Matplotlibは、データを使用して2次元プロットを作成するために使用されます。 Pythonアプリケーションにプロットを埋め込むのに役立つオブジェクト指向APIが付属しています。 Matplotlibは、IPythonシェル、Jupyterノートブック、SpyderIDEなどで使用できます。 Pyth

  2. matplotlibを使用して、Pythonの1つのグラフに3つの異なるデータセットをプロットするにはどうすればよいですか?

    Matplotlibは、データの視覚化に使用される人気のあるPythonパッケージです。データの視覚化は、実際に数値を調べたり複雑な計算を実行したりすることなく、データで何が起こっているのかを理解するのに役立つため、重要なステップです。定量的な洞察を聴衆に効果的に伝えるのに役立ちます。 Matplotlibは、データを使用して2次元プロットを作成するために使用されます。 Pythonアプリケーションにプロットを埋め込むのに役立つオブジェクト指向APIが付属しています。 Matplotlibは、IPythonシェル、Jupyterノートブック、SpyderIDEなどで使用できます。 Pytho