データの可視化方法として、バイオリン図というものがあります。
バイオリン図 – Wikipedia
pythonでこれを書こうと思ったら、 Seaborn を使うのが定番なのですが、
実はmatplotlibにもAPIが用意されていたことを知ったのでその紹介です。
ドキュメント
matplotlib.axes.Axes.violinplot
(ただ、どうも Seaborn の方が使いやすそう。)
とりあえず動かしてみましょう。データは手頃なところで、 iris の4つの特徴量を可視化してみます。
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
data = load_iris().data
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, title="iris data")
ax.violinplot(data)
plt.show()
出力はこちら。
先ほどのドキュメントに記載されている通り、他にも細かなオプションで見た目が調整できるのですが、
Seaborn の方が多機能のようです。
バイオリンの左右に違う分布を表示するといったことを行いたかったのですが、
どうやらmatplotlibではできなさそう。