You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/ja/3-Data-Visualization/11-visualization-proportions/README.md

13 KiB

比率の可視化

 (@sketchthedocs) によるスケッチノート
比率の可視化 - @nitya によるスケッチノート

このレッスンでは、自然に焦点を当てた異なるデータセットを使用して、キコに関するデータセット内でどれだけ多くの種類の菌類が存在するかなどの比率を可視化します。Audubonから取得したデータセットを使用して、AgaricusおよびLepiota科に属する23種のひだ付きキコの詳細を探ります。以下のような魅力的な可視化を試してみましょう

  • 円グラフ 🥧
  • ドーナツグラフ 🍩
  • ワッフルチャート 🧇

💡 Microsoft Researchによる非常に興味深いプロジェクト Charticulator は、データ可視化のための無料のドラッグドロップインターフェースを提供しています。彼らのチュートリアルの1つでは、このキコのデータセットも使用されていますデータを探索しながらライブラリを学ぶことができますCharticulator tutorial

講義後のクイズ

キノコについて知ろう 🍄

キノコはとても興味深い存在です。データセットをインポートして研究してみましょう:

import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()

以下のような分析に適したデータがテーブルとして表示されます:

class cap-shape cap-surface cap-color bruises odor gill-attachment gill-spacing gill-size gill-color stalk-shape stalk-root stalk-surface-above-ring stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring veil-type veil-color ring-number ring-type spore-print-color population habitat
毒性あり Convex Smooth Brown Bruises Pungent Free Close Narrow Black Enlarging Equal Smooth Smooth White White Partial White One Pendant Black Scattered Urban
食用 Convex Smooth Yellow Bruises Almond Free Close Broad Black Enlarging Club Smooth Smooth White White Partial White One Pendant Brown Numerous Grasses
食用 Bell Smooth White Bruises Anise Free Close Broad Brown Enlarging Club Smooth Smooth White White Partial White One Pendant Brown Numerous Meadows
毒性あり Convex Scaly White Bruises Pungent Free Close Narrow Brown Enlarging Equal Smooth Smooth White White Partial White One Pendant Black Scattered Urban

すぐに気づくのは、すべてのデータがテキスト形式であることです。このデータをチャートで使用できるように変換する必要があります。実際、このデータの多くはオブジェクトとして表現されています:

print(mushrooms.select_dtypes(["object"]).columns)

出力は以下の通りです:

Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor',
       'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',
       'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',
       'stalk-surface-below-ring', 'stalk-color-above-ring',
       'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number',
       'ring-type', 'spore-print-color', 'population', 'habitat'],
      dtype='object')

このデータを使用して、'class'列をカテゴリに変換します:

cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass

これでキノコのデータを印刷すると、毒性あり/食用のクラスに基づいてカテゴリにグループ化されたことが確認できます:

cap-shape cap-surface cap-color bruises odor gill-attachment gill-spacing gill-size gill-color stalk-shape ... stalk-surface-below-ring stalk-color-above-ring stalk-color-below-ring veil-type veil-color ring-number ring-type spore-print-color population habitat
class
食用 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
毒性あり 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

このテーブルに示された順序に従ってクラスカテゴリラベルを作成すれば、円グラフを作成できます。

円グラフ!

labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()

完成!この円グラフは、キノコのデータを毒性あり/食用の2つのクラスに基づいて比率を示しています。特にここではラベルの順序が重要なので、ラベル配列の順序を必ず確認してください

円グラフ

ドーナツグラフ!

円グラフよりも視覚的に興味深いのがドーナツグラフです。これは中央に穴がある円グラフです。この方法でデータを見てみましょう。

キノコが生育するさまざまな生息地を見てみましょう:

habitat=mushrooms.groupby(['habitat']).count()
habitat

ここではデータを生息地ごとにグループ化しています。7つの生息地がリストされているので、それらをドーナツグラフのラベルとして使用します

labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']

plt.pie(habitat['class'], labels=labels,
        autopct='%1.1f%%', pctdistance=0.85)
  
center_circle = plt.Circle((0, 0), 0.40, fc='white')
fig = plt.gcf()

fig.gca().add_artist(center_circle)
  
plt.title('Mushroom Habitats')
  
plt.show()

ドーナツグラフ

このコードはチャートと中央の円を描画し、その円をチャートに追加します。中央の円の幅を変更するには、0.40を別の値に変更してください。

ドーナツグラフはラベルを変更するなど、いくつかの方法で調整できます。特にラベルは読みやすさを向上させるために強調表示できます。詳細はドキュメントで学べます。

データをグループ化して円グラフやドーナツグラフとして表示する方法を学んだので、他の種類のチャートも探索できます。ワッフルチャートを試してみましょう。これは数量を探索する別の方法です。

ワッフルチャート!

ワッフルチャートは、数量を2D配列の四角形として可視化する方法です。このデータセット内のキコの傘の色の異なる数量を可視化してみましょう。そのためには、PyWaffleというヘルパーライブラリをインストールし、Matplotlibを使用します

pip install pywaffle

データのセグメントを選択してグループ化します:

capcolor=mushrooms.groupby(['cap-color']).count()
capcolor

ラベルを作成し、データをグループ化してワッフルチャートを作成します:

import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
  
data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
    'amount': capcolor['class']
     }
  
df = pd.DataFrame(data)
  
fig = plt.figure(
    FigureClass = Waffle,
    rows = 100,
    values = df.amount,
    labels = list(df.color),
    figsize = (30,30),
    colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)

ワッフルチャートを使用すると、このキノコのデータセットの傘の色の比率が明確にわかります。興味深いことに、緑色の傘を持つキノコが多く存在します!

ワッフルチャート

PyWaffleは、Font Awesomeで利用可能なアイコンを使用してチャート内にアイコンを表示することをサポートしています。アイコンを四角形の代わりに使用して、さらに興味深いワッフルチャートを作成する実験をしてみてください。

このレッスンでは、比率を可視化する3つの方法を学びました。まず、データをカテゴリにグループ化し、次にデータを表示する最適な方法を決定します - 円グラフ、ドーナツグラフ、またはワッフルチャート。どれも魅力的で、データセットのスナップショットを瞬時に提供します。

🚀 チャレンジ

Charticulatorでこれらの魅力的なチャートを再現してみてください。

講義後のクイズ

復習と自己学習

円グラフ、ドーナツグラフ、ワッフルチャートをいつ使用するべきかは、必ずしも明確ではありません。このトピックに関する以下の記事を読んでみてください:

https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart

https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce

https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm

https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402

さらに情報を探して、この難しい決定について調査してみてください。

課題

Excelで試してみる


免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確さが含まれる可能性があります。元の言語で記載された原文が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤認について、当社は一切の責任を負いません。