はじめに
matplotlibには、恨みは全くないです。
私もよくmatplotlib使います!
なので、matplotlibの方がseabornより人気だよなーとなんとかく感じてました。
そこで、まずmatplotlibとseabornを比較してみました。
matplotlibとseaborn
人気度を比較
- まず、Googleトレンドを使って比較してみました!
日本での人気度
世界での人気度
- 次に世界です。
- 青がmatplotlibで、赤がseabornです。
明らかに日本ではmatplotlibとseabornの差が世界と比べて大きいです。
一時的に急上昇している理由に関して、コメントいただきましたので追記しました。
またseabornの急上昇している期間に絞って調べると、"ed sheeran engaged cherry seaborn"というキーワードで盛り上がっているのがわかります。
日本と世界で比べると日本が大きように見えますが、もしかしたら世界ではseabornというPythonとは関係ないワードで検索されている可能性があるため、一概に差が大きいとは言えないかもしれないです。(要検証)
ただ、seaborn
にも少しでも目を向けられたらと思って書いていきます!
そもそもなぜ、みんなmatplotlib使うのさ
理由1:matplotlibの方が、seabornより検索結果が多い
- Qiitaの記事数を見ると10倍も違いますね。
- Googleで調べてもmatplotlibの方が検索件数は多かったです。
理由2:そこまで美しさ、複雑なグラフを求めていない
- 正直、グラフなんてそこまでこだわって見せる必要がない。
- 見せ方にこだわるなら分析にもっと時間かけるわ。って事だと思います。
さて、実際にグラフを描いていきます!
データ
やはり、美しいグラフを描くには美しいデータでしょ。
ということで、乃木坂46のデータを使いますw(関係ない。。。)
乃木坂46のデータを集めるために、地道にwikipediaとかからコピペしました。
gistに乃木坂の売上データをtsvファイルで配置しました。
よかったら有効活用してくださる方がいると嬉しいです。
実装(グラフを描く)
普通にPythonで描くよりjupyterやGoogle colaboratoryで描く方が楽です。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
nogi_df = pd.read_csv('./nogizaka.tsv', sep='\t')
f, (ax1, ax2) = plt.subplots(2, 1, figsize=(7, 5), sharex=True)
sns.barplot(
x=nogi_df.release_ymd,
y=nogi_df.initial_turnover,
palette="rocket",
ax=ax1,
orient='v')
ax1.axhline(0, color="k", clip_on=False)
ax1.set_ylabel('初動売上')
ax1.set_xlabel('')
ax1.set_xticklabels(nogi_df.title, rotation=90)
sns.barplot(
x=nogi_df.release_ymd,
y=nogi_df.sales,
palette="vlag",
ax=ax2
)
ax2.axhline(0, color="k", clip_on=False)
ax2.set_ylabel('売上')
ax2.set_xlabel('曲名')
ax2.set_xticklabels(nogi_df.title, rotation=90)
できあがったグラフ
- とても、グラデーションが綺麗ですね。。。
- 大した事してないorz
考察(一応)
- 上のグラフが初動売上で下が総合?売上です。
初日でいかに売るかがキモ?
- やはり、初動売上に比例して総合売上も変わっていますね。なので、初日でいかに売るかがキモなんでしょうか。
夏曲がイマイチ
- 夏曲の売上が前作と比較してイマイチの伸びですね。
- 『走れ!Bicycle』『夏のFree&Easy』『太陽ノック『裸足でSummer』『ジコチューで行こう!』が夏曲なんですが、『夏のFree&Easy』と『ジコチューで行こう!』の2作は前作を下回っています。
- 実際、いい曲なんですが他のシングル曲に比べると人気が弱い気がします。
- なんとなくですが、乃木坂46に夏曲は似合わないのかもしれないです。
(※乃木坂46の曲、ランキング100があるのでその辺もビジュアライズするとわかりやすいかもしれないです。)
終わり
まぁ、たまにはseabornを使ってみてください!