library(ggplot2)
df <- data.frame(x = runif(100))
ggplot(df, aes(x)) + geom_histogram(binwidth = 0.1)
如果我想将包含特定值的bin设置为“red”而其余部分变为“blue”,该怎么办?比如说值0.5(将在[0.5,0.6]箱中)?
答案 0 :(得分:0)
我用这个
得到了正确的效果df <- data.frame(x = runif(100))
df$y <- ifelse(df$x > 0.46 & df$x < 0.65, df$x, NA)
ggplot(df, aes(x)) +
geom_histogram(binwidth = 0.1, fill = 4) +
geom_histogram(aes(y), binwidth = 0.1, fill = 2, data = df)
答案 1 :(得分:0)
好的,我想我明白了。一直以来,我都错了。显然,它以价值为中心(而不是它的起点)。
因此,如果binwidth为0.1,则0.5 bin将包含介于(0.45,0.55)之间的值。我认为它是0.5到0.6,这就是为什么我一直得到半值。谢谢你的帮助!
在@ user127649给出的示例中,如果将其更改为:
df <- data.frame(x = runif(100))
df$y <- ifelse(df$x > 0.45 & df$x < 0.55, df$x, NA) <-- adjust the binwidth here. This is where I got the idea that it's centered around the breaks.
ggplot(df, aes(x)) +
geom_histogram(binwidth = 0.1, fill = 4) +
geom_histogram(aes(y), binwidth = 0.1, fill = 2, data = df)