gpt4 book ai didi

r - 在 ggplot2 中创建密度直方图?

转载 作者:行者123 更新时间:2023-12-03 11:25:50 24 4
gpt4 key购买 nike

我想用 ggplot2 创建下一个直方图密度图.以“正常”方式(基本包)非常简单:

set.seed(46)
vector <- rnorm(500)
breaks <- quantile(vector,seq(0,1,by=0.1))
labels = 1:(length(breaks)-1)
den = density(vector)
hist(df$vector,
breaks=breaks,
col=rainbow(length(breaks)),
probability=TRUE)
lines(den)

enter image description here

到目前为止,我已经使用 ggplot 达到了这一点:
seg <- cut(vector,breaks,
labels=labels,
include.lowest = TRUE, right = TRUE)
df = data.frame(vector=vector,seg=seg)

ggplot(df) +
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))

但是“y”比例尺有错误的维度。我已经注意到下一次运行正确地获得了“y”比例。
 ggplot(df) + 
geom_histogram(breaks=breaks,
aes(x=vector,
y=..density..,
fill=seg)) +
geom_density(aes(x=vector,
y=..density..))

我就是不明白。 y=..density..在那里,那应该是高度。那么究竟为什么当我尝试填充时我的比例会被修改呢?

我确实需要颜色。我只想要一个直方图,其中每个块的中断和颜色是根据默认的 ggplot 填充颜色定向设置的。

最佳答案

我手动为您的百分位条添加了颜色。看看这是否适合你。

library(ggplot2)

ggplot(df, aes(x=vector)) +
geom_histogram(breaks=breaks,aes(y=..density..),colour="black",fill=c("red","orange","yellow","lightgreen","green","darkgreen","blue","darkblue","purple","pink")) +
geom_density(aes(y=..density..)) +
scale_x_continuous(breaks=c(-3,-2,-1,0,1,2,3)) +
ylab("Density") + xlab("df$vector") + ggtitle("Histogram of df$vector") +
theme_bw() + theme(plot.title=element_text(size=20),
axis.title.y=element_text(size = 16, vjust=+0.2),
axis.title.x=element_text(size = 16, vjust=-0.2),
axis.text.y=element_text(size = 14),
axis.text.x=element_text(size = 14),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())

enter image description here

关于r - 在 ggplot2 中创建密度直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21061653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com