[R/SAS/Python]ヒストグラム+密度関数

目的
フィッシャーのアヤメのデータを用いてヒストグラムを作成し、密度関数を重ねる。
(参考)Iris flower data set
https://en.wikipedia.org/wiki/Iris_flower_data_set

データ

Sepal_LengthSepal_WidthPetal_LengthPetal_WidthSpecies
5.13.51.40.2setosa
4.931.40.2setosa
4.73.21.30.2setosa
4.63.11.50.2setosa
53.61.40.2setosa
5.43.91.70.4setosa
4.63.41.40.3setosa
53.41.50.2setosa
4.42.91.40.2setosa
4.93.11.50.1setosa
5.43.71.50.2setosa
4.83.41.60.2setosa
4.831.40.1setosa
4.331.10.1setosa
5.841.20.2setosa
5.74.41.50.4setosa
5.43.91.30.4setosa
5.13.51.40.3setosa
5.73.81.70.3setosa
5.13.81.50.3setosa
5.43.41.70.2setosa
5.13.71.50.4setosa
4.63.610.2setosa
5.13.31.70.5setosa
4.83.41.90.2setosa
531.60.2setosa
53.41.60.4setosa
5.23.51.50.2setosa
5.23.41.40.2setosa
4.73.21.60.2setosa
4.83.11.60.2setosa
5.43.41.50.4setosa
5.24.11.50.1setosa
5.54.21.40.2setosa
4.93.11.50.2setosa
53.21.20.2setosa
5.53.51.30.2setosa
4.93.61.40.1setosa
4.431.30.2setosa
5.13.41.50.2setosa
53.51.30.3setosa
4.52.31.30.3setosa
4.43.21.30.2setosa
53.51.60.6setosa
5.13.81.90.4setosa
4.831.40.3setosa
5.13.81.60.2setosa
4.63.21.40.2setosa
5.33.71.50.2setosa
53.31.40.2setosa
73.24.71.4versicolor
6.43.24.51.5versicolor
6.93.14.91.5versicolor
5.52.341.3versicolor
6.52.84.61.5versicolor
5.72.84.51.3versicolor
6.33.34.71.6versicolor
4.92.43.31versicolor
6.62.94.61.3versicolor
5.22.73.91.4versicolor
523.51versicolor
5.934.21.5versicolor
62.241versicolor
6.12.94.71.4versicolor
5.62.93.61.3versicolor
6.73.14.41.4versicolor
5.634.51.5versicolor
5.82.74.11versicolor
6.22.24.51.5versicolor
5.62.53.91.1versicolor
5.93.24.81.8versicolor
6.12.841.3versicolor
6.32.54.91.5versicolor
6.12.84.71.2versicolor
6.42.94.31.3versicolor
6.634.41.4versicolor
6.82.84.81.4versicolor
6.7351.7versicolor
62.94.51.5versicolor
5.72.63.51versicolor
5.52.43.81.1versicolor
5.52.43.71versicolor
5.82.73.91.2versicolor
62.75.11.6versicolor
5.434.51.5versicolor
63.44.51.6versicolor
6.73.14.71.5versicolor
6.32.34.41.3versicolor
5.634.11.3versicolor
5.52.541.3versicolor
5.52.64.41.2versicolor
6.134.61.4versicolor
5.82.641.2versicolor
52.33.31versicolor
5.62.74.21.3versicolor
5.734.21.2versicolor
5.72.94.21.3versicolor
6.22.94.31.3versicolor
5.12.531.1versicolor
5.72.84.11.3versicolor
6.33.362.5virginica
5.82.75.11.9virginica
7.135.92.1virginica
6.32.95.61.8virginica
6.535.82.2virginica
7.636.62.1virginica
4.92.54.51.7virginica
7.32.96.31.8virginica
6.72.55.81.8virginica
7.23.66.12.5virginica
6.53.25.12virginica
6.42.75.31.9virginica
6.835.52.1virginica
5.72.552virginica
5.82.85.12.4virginica
6.43.25.32.3virginica
6.535.51.8virginica
7.73.86.72.2virginica
7.72.66.92.3virginica
62.251.5virginica
6.93.25.72.3virginica
5.62.84.92virginica
7.72.86.72virginica
6.32.74.91.8virginica
6.73.35.72.1virginica
7.23.261.8virginica
6.22.84.81.8virginica
6.134.91.8virginica
6.42.85.62.1virginica
7.235.81.6virginica
7.42.86.11.9virginica
7.93.86.42virginica
6.42.85.62.2virginica
6.32.85.11.5virginica
6.12.65.61.4virginica
7.736.12.3virginica
6.33.45.62.4virginica
6.43.15.51.8virginica
634.81.8virginica
6.93.15.42.1virginica
6.73.15.62.4virginica
6.93.15.12.3virginica
5.82.75.11.9virginica
6.83.25.92.3virginica
6.73.35.72.5virginica
6.735.22.3virginica
6.32.551.9virginica
6.535.22virginica
6.23.45.42.3virginica
5.935.11.8virginica

プログラム

RSASPythom
#ライブラリ呼び出し
library(ggplot2)

#ヒストグラム + 密度関数の作成
g <- ggplot(iris, aes(x = Sepal.Length,y = ..density.., fill = Species))
g <- g + geom_histogram(position = "identity", alpha = 0.6)
g <- g + geom_density(aes(color = Species, alpha = 0.2), show.legend = F)
plot(g)

alpha=で透過度を設定する。

/* ヒストグラム&密度関数の作成 */
proc sgplot data = SASHELP.IRIS;
  histogram SEPALLENGTH / group = SPECIES transparency = 0.6;
  density SEPALLENGTH / group = SPECIES transparency = 0.3;
run;

transparency=で透過度を設定する。

#ライブラリ呼び出し
import pandas as pd
from sklearn.datasets import load_iris

#irisデータを呼び出してデータフレーム化する
iris = load_iris()
IRIS = pd.DataFrame(iris.data, columns = iris.feature_names)
IRIS['species'] = iris.target_names[iris.target]

#ヒストグラムの作成(複数)
IRIS.query("species == 'setosa' ")["sepal length (cm)"].plot(kind = "hist", bins = 10, alpha = 0.5, color = "r")
IRIS.query("species == 'virginica' ")["sepal length (cm)"].plot(kind = "hist", bins = 10, alpha = 0.5, color = "g")
IRIS.query("species == 'versicolor' ")["sepal length (cm)"].plot(kind = "hist", bins = 10, alpha = 0.5, color = "b")
IRIS.query("species == 'setosa' ")["sepal length (cm)"].plot(kind = "density", alpha = 0.5, color = "r",secondary_y = True)
IRIS.query("species == 'virginica' ")["sepal length (cm)"].plot(kind = "density", alpha = 0.5, color = "g",secondary_y = True)
IRIS.query("species == 'versicolor' ")["sepal length (cm)"].plot(kind = "density", alpha = 0.5, color = "b",secondary_y = True)

alpha=で過度を設定する。
secondary_y=で2軸にすることで重なりを表現する。

ご意見・ご要望などありましたらコメント欄に書き込みくださいませ。
新規記事投稿のリクエストなどあれば問い合わせフォームからどうぞ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です