如何让ggplot2绘图更漂亮?

2024-02-17

I have generated the following plot using the R code that follows it: alt text

ggplot(lengths, aes(length, fill = library)) + geom_density(alpha = 0.2) + coord_cartesian(xlim = c(0, 60000)) 

现在我想让情节更漂亮一点:

  1. 使x轴显示长度 5000 单位(而不是每 20000 单位)
  2. 在三个值之上添加 x 值 峰值(大约 3000、5000 和 35000)。

我怎样才能做到这一点?

update in response to James: alt text


怎么样:

(首先创建一个可重现的示例)

set.seed(1001)
lengths <- data.frame(length=c(rgamma(1000,shape=10,scale=500),
                    10000+rgamma(1000,shape=5,scale=700),
                    rnorm(500,mean=30000,sd=2000)),
                  library=factor(rep(2:1,c(2000,500))))

(寻找峰值位置和高度的可爱东西)

peakfun <- function(x) {
  d <- density(x$length)
  peaks <- which(diff(sign(diff(d$y)))==-2)
  data.frame(x=d$x[peaks],y=d$y[peaks])
}

peakdat <- ddply(lengths,.(library),peakfun)
peakdat <- peakdat[-1,] ## drop spurious peak

(绘制情节)

library(ggplot2)
ggplot(lengths, aes(length, fill = library)) +
  geom_density(alpha = 0.2) +
  scale_x_continuous(limits = c(0,60000),
                     breaks = seq(0,60000,by=5000))+
  geom_text(data=peakdat,aes(x=x,y=y,label=round(x)),vjust=1)

您可能想稍微调整标签的垂直高度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让ggplot2绘图更漂亮? 的相关文章

随机推荐