二つの乱数データのヒストグラムを作成する。
なお,複数の分布を同一画面に表示させるとヒストグラムは見づらいので,
箱ひげ図(boxplot)の利用を検討すること。
set.seed(2) # 乱数シード(ソースコード実行時に毎回同じ乱数になる)
u <- rnorm(n = 100, mean = -2, sd = 1) # 平均0,標準偏差1の正規乱数(100個)
v <- rnorm(n = 100, mean = 2, sd = 2) # 平均2,標準偏差1の正規乱数(100個)
# カラーパレット
COL <- c(rgb(255, 0, 255, 55, max = 255), # ピンク
rgb( 0, 0, 255, 55, max = 255)) # ラベンダー
コンソール画面で?histとタイプするとヘルプを表示する
>?hist
hist(u)
Rは設定された分割数に近い見栄えの良い分割数で分割する。
hist(u, breaks = 2) # 分割数2だが複数のバーがでる。
hist(u, xaxt = 'n') # xaxtでx軸ラベルを非表示
# sideで軸を選択 x:1,y:2,atの位置にlabelsで指定したラベルを表示
axis(side = 1,
at = seq(-5, 5, 0.5),
labels = seq(-5, 5, 0.5))
hist(u,
breaks = 'Scott', # 'Sturges'(default),'Scott','FD'
right = F, # 以上~未満 [a, b), default T:超過~以下(a, b]
ylim = c(0, 40), # y軸の範囲(最小値,最大値)を設定
col = 'yellow', # バーの色を色名で指定
main = '主タイトル',
xlab = 'x軸ラベル[単位]',
ylab = '度数')
# 階級
BINS <- seq(-20, 20, 1)
# 図枠
hist(u, col = 0, border = 0,
breaks = BINS, # 'Sturges'(default),'Scott','FD'
right = F, # 以上~未満 [a, b), default T:超過~以下(a, b]
main = '主タイトル',
xlab = 'x軸ラベル[単位]',
ylab = '度数')
# 罫線
grid()
# プロット
hist(u, breaks = BINS, col = COL[1], add = T)
hist(v, breaks = BINS, col = COL[2], add = T)
# 凡例
legend('topleft', fill = COL, legend = c('u', 'v'))
library(ggplot2)
library(reshape2)
d <- data.frame(u, v)
ggplot(melt(d), aes(value, fill = variable)) +
geom_histogram(binwidth = 1, position = "dodge")
#geom_histogram(binwidth = 1, position = "identity", alpha = 0.75)
library(plotly)
plot_ly(type = 'histogram') |>
add_histogram(x = u, name = 'u', marker = list(color = COL[1])) |>
add_histogram(x = v, name = 'v', marker = list(color = COL[2])) |>
layout(barmode = 'overlay', font = list(family = 'UD Digi Kyokasho NK-R'),
title = '主タイトル',
xaxis = list(title = '項目ラベル'),
yaxis = list(title = 'y軸ラベル[単位]'))
import numpy as np
np.random.seed(3)
u = np.random.normal(loc =-2.0, scale = 1.0, size = 100)
v = np.random.normal(loc = 2.0, scale = 2.0, size = 100)
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# 階級
BINS = np.linspace(-20, 20, 41)
plt.hist(u, BINS, label = 'u', color = (1.0, 0.0, 1.0, 0.2))
plt.hist(v, BINS, label = 'v', color = (0.0, 0.0, 1.0, 0.2))
# ラベル
plt.title('主タイトル')
plt.xlabel('x軸ラベル[単位]')
plt.ylabel('y軸ラベル[単位]')
# 格子線(grid lines)
plt.grid(linestyle = '--', axis = 'y', color = (0.8, 0.8, 0.8, 0.25))
# 凡例(はんれい)
plt.legend(loc = 'upper right')
# 作図
plt.show()