Stacked Bar Charts with Python’s Matplotlib
予想通り、チャートは読みにくいです。 積み上げ棒グラフを試し、いくつかの調整を加えてみましょう。
まず、プロットする前に値を並べ替えることで、順序の感覚がよくなり、棒グラフを比較するのが簡単になります。 グローバルセールス」列には合計があるので、そうします。
## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped
以前、クラスター棒グラフを構築するには、幅パラメーターと x 軸の調整により各プラットフォームの 4 領域に適合するように地域ごとのプロットを使用しました。
同様に、スタック バー チャートをプロットするために、各リージョンのプロットを使用します。 今回は bottom/left パラメータを使って、描画するバーの前に何が来るかを Matplotlib に伝えます。
plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()
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()
Great, this is way more readable than the last one.
Introduce any insights の前にこのグラフの目的を覚えておくことが重要です。 ここでのアイデアは、プラットフォームの総売上を比較し、各プラットフォームの構成を理解することです。
フィールド間の合計を比較し、1 つのバーの中の地域を比較することは OK です。 一方、異なるバーの地域を比較すると、非常に誤解を招く可能性があります。
この場合、NA 地域はすべてのバーの出発点が同じであるため、バー全体で比較できますが、他の地域を比較するのはそれほど簡単ではありません。 例えば、X360はPS2よりもJPの値が低いですが、Othersの値がWiiよりも高いか低いかを比較するのは困難です。