satopoooonのブログ

自分向けの備忘録

複数のグラフを一度に書く

seabornのグラフを一度に複数書く、

あるパラメータで層別して、複数のグラフを一度に描きたいです。 seabornのfacetgridを使います。 参考サイトは以下です。

Python でデータ可視化 - "Facet"で属性別グラフを一気に描く方法が便利すぎる - Qiita Python - seaborn.facetgridでの文字追加(121610)|teratail seaborn.FacetGrid — seaborn 0.8.1 documentation

以下コード

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

bins = np.arange(0, 65, 5)
tips = sns.load_dataset("tips")

#層別のパラメータが2種類ある場合は、col、rowで指定します。
#1種類の場合は、colのみで良いと思います。
g = sns.FacetGrid(tips, col="time",  row="smoker")
g = g.map(sns.distplot, "total_bill", bins=bins, color="r")

#各gridに対する、axisを読んで、テキストを埋め込みます。平均値とかを記載したときに良いかと、
for i in range(2):
    for j in range(2):
        ax = g.facet_axis(i, j)
        ax.text(40,0.04,"hoge")

plt.show()

f:id:satopoooon:20180416173350p:plain