如何在R中绘制不同颜色的直方图
How to plot a histogram with different colors in R
我在一个 csv 文件中有一个包含大约 500 个整数值的数据集,每个值都在 50-89 之间。我正在尝试在 R 中创建一个直方图,其中代表值 50-65 的条形为青铜色,66-74 为银色,75-89 为金色。到目前为止我的脚本如下:
dat1 <- read.csv("test2.csv", header=F)$V1
hist(dat1, main="Distribution of Player Ratings", xlim = c(0,99), breaks=c(seq(40,99,5)))
下面是test2.csv的示例(非常简单)
69,
68,
67,
65,
65,
62,
59,
59,
54,
现在我的图表是:
我需要做什么才能满足前面解释的颜色指南?
注意:我之前发布过这个问题,但没有我的任何代码或对我的数据集的引用。
您需要在 hist
方法中添加 col
参数,如下所示:
t<- c(69,68,67,65,65,62,59,59,54)
hist(t, main="Distribution of Player Ratings",xlim = c(0,99),
breaks=c(seq(40,99,5)), col = c("blue", "red", "gray", "green"))
查看上面执行后得到的图像:
现在您可以根据需要替换颜色值(名称或十六进制值,如“#FFFF00”)。
在您之前的问题中,您提到了 ggplot2
,因此这是一个 ggplot2
解决方案:
首先模拟你的数据集:
set.seed(123)
df <- data.frame(X = sample(50:89, 500, replace = T))
添加定义颜色标准的新变量:
df$group = ifelse(df$X < 66, "50-65", ifelse(df$X < 75, "66-74", "75-89"))
现在,加载 ggplot2
库以创建直方图
library(ggplot2)
ggplot(df, aes(X, fill = group)) + geom_histogram()
要自定义颜色,请使用 scale_fill_manual
:
ggplot(df, aes(X, fill = group)) + geom_histogram() +
scale_fill_manual(values = c("50-65" = "#CD7F32",
"66-74" = "#C0C0C0",
"75-89" = "gold"))
现在这个图是这样的:
虽然您包含了 xlim = c(0,99)
(在附图中不可见),但我不知道您为什么要使用它。如果您愿意,可以添加 xlim
参数和 + xlim(0,99)
。
要了解有关 ggplot2
的更多信息,请查看 here。
注意:您可以在geom_histogram
中定义bin的数量或binwidth。参考 this 更多
我在一个 csv 文件中有一个包含大约 500 个整数值的数据集,每个值都在 50-89 之间。我正在尝试在 R 中创建一个直方图,其中代表值 50-65 的条形为青铜色,66-74 为银色,75-89 为金色。到目前为止我的脚本如下:
dat1 <- read.csv("test2.csv", header=F)$V1
hist(dat1, main="Distribution of Player Ratings", xlim = c(0,99), breaks=c(seq(40,99,5)))
下面是test2.csv的示例(非常简单)
69,
68,
67,
65,
65,
62,
59,
59,
54,
现在我的图表是:
我需要做什么才能满足前面解释的颜色指南?
注意:我之前发布过这个问题,但没有我的任何代码或对我的数据集的引用。
您需要在 hist
方法中添加 col
参数,如下所示:
t<- c(69,68,67,65,65,62,59,59,54)
hist(t, main="Distribution of Player Ratings",xlim = c(0,99),
breaks=c(seq(40,99,5)), col = c("blue", "red", "gray", "green"))
查看上面执行后得到的图像:
现在您可以根据需要替换颜色值(名称或十六进制值,如“#FFFF00”)。
在您之前的问题中,您提到了 ggplot2
,因此这是一个 ggplot2
解决方案:
首先模拟你的数据集:
set.seed(123)
df <- data.frame(X = sample(50:89, 500, replace = T))
添加定义颜色标准的新变量:
df$group = ifelse(df$X < 66, "50-65", ifelse(df$X < 75, "66-74", "75-89"))
现在,加载 ggplot2
库以创建直方图
library(ggplot2)
ggplot(df, aes(X, fill = group)) + geom_histogram()
要自定义颜色,请使用 scale_fill_manual
:
ggplot(df, aes(X, fill = group)) + geom_histogram() +
scale_fill_manual(values = c("50-65" = "#CD7F32",
"66-74" = "#C0C0C0",
"75-89" = "gold"))
现在这个图是这样的:
虽然您包含了 xlim = c(0,99)
(在附图中不可见),但我不知道您为什么要使用它。如果您愿意,可以添加 xlim
参数和 + xlim(0,99)
。
要了解有关 ggplot2
的更多信息,请查看 here。
注意:您可以在geom_histogram
中定义bin的数量或binwidth。参考 this 更多