作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因为我对数学感到困惑last time I tried asking this ,这是另一个尝试。我想将直方图与平滑分布拟合结合起来。我希望 y 轴以百分比表示。
我找不到获得此结果的好方法。上次,我设法找到一种方法将 geom_bar
缩放到与 geom_密度
相同的比例,但这与我想要的相反。
我当前的代码产生以下输出:
ggplot2::ggplot(iris, aes(Sepal.Length)) +
geom_bar(stat="bin", aes(y=..density..)) +
geom_density()
密度和条 y 值匹配,但缩放是无意义的。我想要 y 轴上的百分比,而不是密度。
一些新的尝试。我们首先修改条形图以显示百分比而不是计数:
gg = ggplot2::ggplot(iris, aes(Sepal.Length)) +
geom_bar(aes(y = ..count../sum(..count..))) +
scale_y_continuous(name = "%", labels=scales::percent)
然后我们尝试添加一个 geom_密度 并以某种方式让它正确缩放:
gg + geom_density()
gg + geom_density(aes(y=..count..))
gg + geom_density(aes(y=..scaled..))
gg + geom_density(aes(y=..density..))
与第一个相同。
gg + geom_density(aes(y = ..count../sum(..count..)))
gg + geom_density(aes(y = ..count../n))
似乎偏离了大约 10 倍......
gg + geom_density(aes(y = ..count../n/10))
与:
相同gg + geom_density(aes(y = ..density../10))
但是临时插入数字似乎是个坏主意。
一个有用的技巧是检查绘图的计算值。如果保存对象,它们通常不会保存在对象中。但是,可以使用:
gg_data = ggplot_build(gg + geom_density())
gg_data$data[[2]] %>% View
由于我们知道 x=6 周围的密度拟合应该约为 0.04 (4%),因此我们可以四处寻找 ggplot2 计算的值来实现这一目标,而我看到的唯一结果是密度/10。
如何使 geom_密度
适合缩放到与修改后的 geom_bar
相同的 y 轴?
额外问题:为什么条形的分组不同?当前函数的小节之间没有空格。
最佳答案
这是一个简单的解决方案:
library(scales) # ! important
library(ggplot2)
ggplot(iris, aes(Sepal.Length)) +
stat_bin(aes(y=..density..), breaks = seq(min(iris$Sepal.Length), max(iris$Sepal.Length), by = .1), color="white") +
geom_line(stat="density", size = 1) +
scale_y_continuous(labels = percent, name = "percent") +
theme_classic()
输出:
关于r - 缩放geom_密度以将geom_bar与y上的百分比相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907260/
现在我正在尝试实现 flash programming specification对于 PIC32MX。我正在使用 PIC32MX512L 和 PIC32MX512H。 PIC32MX512L最终必须
我是一名优秀的程序员,十分优秀!