R でさまざまな色のヒストグラムを作成する方法
多くの場合、R でいくつかの異なる色を使用してヒストグラムを作成したい場合があります。
次の例は、ベース R とggplot2でこれを行う方法を示しています。
例 1: 基数 R で異なる色のヒストグラム
次のコードは、ベース R の単一色でヒストグラムを作成する方法を示しています。
#create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))
#create histogram
hist(df$x)
デフォルトでは、ヒストグラム内のすべてのバーの色は同じです。
ただし、次のコードを使用して、3 つの異なる色のヒストグラムを作成できます。
#create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))
#define histogram break points
hist_breaks <- hist(df$x)$breaks
#define colors to use in histogram based on break points
color_list <- rep(' red ', length(hist_breaks))
color_list[hist_breaks < 20 ] <- ' blue '
color_list[hist_breaks < 16 ] <- ' purple '
#create histogram with custom colors
hist(df$x, col=color_list)
3 つの色を作成するロジックは次のとおりです。
- まず、各バーが赤であることを指定しました。
- 次に、ブレークポイントが 20 未満のすべてのバーを青に変更しました。
- 次に、16 未満のブレークポイントを持つすべてのバーを紫に変更しました。
最終結果は 3 色のヒストグラムです。
例 2: ggplot2 のさまざまな色のヒストグラム
R に次のデータ フレームがあるとします。
#create data frame
df <- data. frame (x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))
#view data frame
df
x
1 12
2 14
3 14
4 15
5 15
6 17
7 19
8 22
9 23
10 23
11 24
このデータ フレームに対して異なる色のヒストグラムを作成するには、まずネストされた if else ステートメントを使用して値のグループ化変数を作成する必要があります。
#create grouping variable
df$group = ifelse(df$x < 16 , ' C ', ifelse(df$x < 20 , ' B ', ' A '))
#view updated data frame
df
x group
1 12 C
2 14C
3 14C
4 15C
5 15C
6 17 B
7 19 B
8 22 A
9 23 A
10 23 A
11 24 A
これで、ggplot2 でヒストグラムを作成し、グループ変数を使用してプロットの色を設定できるようになりました。
#create histogram with custom colors
ggplot(df, aes(x, fill=group)) +
geom_histogram(bins= 6 , color=' black ') +
scale_fill_manual(values = c(' A ' = ' red ',
' B ' = ' blue ',
' C ' = ' purple '))
最終結果は 3 色のヒストグラムです。
注: scale_fill_manual()の完全なドキュメントは ここで見つけることができます。
追加リソース
次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。
R で相対頻度ヒストグラムを作成する方法
R のヒストグラムに法線曲線を重ねる方法
R でヒストグラムの区切りを指定する方法