R では ggplot2 というライブラリが人気ですが、Python では seaborn(シーボーン)というデータ視覚化ライブラリが人気です。pip install seaborn
または conda install seaborn
などとしてインストールしておきましょう。seaborn は matplotlib の上で動いているので、いずれにしても matplotlib の設定は必要です。seaborn については Kaggle で Data Visualization という初心者向けの無料講座があるようです。
seaborn 用に用意されているサンプルデータの一覧を見てみましょう:
import seaborn as sns sns.get_dataset_names()
['anagrams', 'anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'dowjones', 'exercise', 'flights', 'fmri', 'geyser', 'glue', 'healthexp', 'iris', 'mpg', 'penguins', 'planets', 'seaice', 'taxis', 'tips', 'titanic']
現時点で22通りのデータがあります。これらは seaborn-data レポジトリからオンデマンドで取ってきて ~/seaborn-data にキャッシュされます。試しに iris データセットを取ってきてみましょう。
iris = sns.load_dataset("iris")
Seaborn の命令一覧は API reference にあります。ペアプロットを描いてみましょう。
sns.pairplot(iris)
スタイルの設定は次のようにします:
sns.set_style("darkgrid")
スタイルは white
、dark
、whitegrid
、darkgrid
、ticks
から選びます。
2022年の Seaborn 0.12 からは、まったく新しい seaborn.objects
インターフェースが使えるようになりました。これは Wilkinson の Grammar of Graphics という思想に基づいて作られたものです。同じ思想に基づいて作られたものでは R の ggplot2 が有名で、Python でも ggplot2 を模した plotnine が2017年に作られました(Sinaplot のところにも書きました)が、seaborn.objects
も同じ流れを汲むものです。
import seaborn as sns import seaborn.objects as so penguins = sns.load_dataset("penguins") so.Plot(penguins, x="bill_length_mm", y="bill_depth_mm").add(so.Dot()).show()
この最後の1行は、読みやすいように、次のように書くことが一般的です。
( so.Plot(penguins, x="bill_length_mm", y="bill_depth_mm") .add(so.Dot()) .show() )
保存は上の .show()
を .save("foo.svg", bbox_inches="tight")
に置き換えてもできますし、従来通りに Matplotlib を使って plt.savefig("foo.svg", bbox_inches="tight")
としてもできます。