我在ggplot2
中创建了R
的直方图,其中的区域用颜色分隔并注意到一件事。当直方图的区间用带有fill
选项的颜色分隔时,直方图的密度值变得有趣。
这是数据。
set.seed(42)
x <- rnorm(10000,0,1)
df <- data.frame(x=x, b=x>1)
这是没有fill
的直方图。
ggplot(df, aes(x = x)) +
geom_histogram(aes(y=..density..))
这是一张fill
的直方图。
ggplot(df, aes(x = x, fill=b)) +
geom_histogram(aes(y=..density..))
你可以看到后者非常疯狂。箱子的左侧伸出来。每种颜色的箱的密度值显然是错误的。
我想了一会儿这个问题。对于第一个直方图是正常的,数据可能是错误的。它应该是ggplot2
或geom_histogram
函数中的内容。我用Google搜索&#34; geom_histogram密度填充&#34;并且无法找到很多帮助。
我希望最终产品看起来像:
你会如何处理问题?
答案 0 :(得分:1)
我认为你可能想要的是:
ggplot(df, aes(x = x, fill=b)) +
geom_histogram()
而不是密度。如上所述,密度需要额外的计算。
有一点很重要(在我看来)是直方图是一个变量的图形。一旦您开始从其他变量添加数据,您就会开始将它们更改为条形图或其他类似的东西。
如果希望手动轴的范围为0到.4,则需要手动设置轴。
答案 1 :(得分:0)
当您在ggplot中为 fill 参数提供列名时,它会对可变量进行分组,并根据每个具有唯一颜色的组绘制它们。 如果你想要一个颜色的情节只需指定你想要的颜色:
NumberFormatException