Stacked Bar Charts with Python’s Matplotlib

11月 17, 2021
admin

予想通り、チャートは読みにくいです。 積み上げ棒グラフを試し、いくつかの調整を加えてみましょう。

まず、プロットする前に値を並べ替えることで、順序の感覚がよくなり、棒グラフを比較するのが簡単になります。 グローバルセールス」列には合計があるので、そうします。

## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped

Some of the records on the data frame – Image by Author

以前、クラスター棒グラフを構築するには、幅パラメーターと x 軸の調整により各プラットフォームの 4 領域に適合するように地域ごとのプロットを使用しました。

同様に、スタック バー チャートをプロットするために、各リージョンのプロットを使用します。 今回は bottom/left パラメータを使って、描画するバーの前に何が来るかを Matplotlib に伝えます。

plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()

Stacked Bar Charts (Vertical/ Horizontal) – Image by Author

Cool.Tapjoy.net は、スタックバー チャート(縦型/横型)のプロットを行います。 ループを使用してバーをプロットし、最初のセットで ‘bottom’ パラメータにゼロのリストを渡し、次のリージョンに次の値を累積させることができます。

fields = 
colors =
labels = # figure and axis
fig, ax = plt.subplots(1, figsize=(12, 10))# plot bars
left = len(df_grouped) *
for idx, name in enumerate(fields):
plt.barh(df_grouped.index, df_grouped, left = left, color=colors)
left = left + df_grouped# title, legend, labels
plt.title('Video Game Sales By Platform and Region\n', loc='left')
plt.legend(labels, bbox_to_anchor=(), ncol=4, frameon=False)
plt.xlabel('Millions of copies of all games')# remove spines
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)# adjust limits and draw grid lines
plt.ylim(-0.5, ax.get_yticks() + 0.5)
ax.set_axisbelow(True)
ax.xaxis.grid(color='gray', linestyle='dashed')plt.show()

Stacked Bar Chart – Image by Author

Great, this is way more readable than the last one.

Introduce any insights の前にこのグラフの目的を覚えておくことが重要です。 ここでのアイデアは、プラットフォームの総売上を比較し、各プラットフォームの構成を理解することです。

フィールド間の合計を比較し、1 つのバーの中の地域を比較することは OK です。 一方、異なるバーの地域を比較すると、非常に誤解を招く可能性があります。

この場合、NA 地域はすべてのバーの出発点が同じであるため、バー全体で比較できますが、他の地域を比較するのはそれほど簡単ではありません。 例えば、X360はPS2よりもJPの値が低いですが、Othersの値がWiiよりも高いか低いかを比較するのは困難です。

Comparable value – Image by Author

比較できない値 – Image by Author

仮に、スタックの順序を変更したとします。 を最初のバーとして、その他の売上高でレコードをソートしてください。

## sort values
df_grouped = df_grouped.sort_values('Other_Sales')fields =
colors =
labels =

Stacked Bar Chart, emphasizing the Others category – Image by Author

この可視化で不可欠な要素は二つ、棒のスタックのカテゴリーの順序と行の順序である。

ある領域を強調したい場合、選択したフィールドでレコードを並べ替え、それを一番左のバーとして使用できます。

そうでない場合、合計でレコードを並べ替えて、値が高いカテゴリを最初にスタックに並べることができます。

コメントを残す

メールアドレスが公開されることはありません。