ggplot2画箱线图将线改成虚线

2020-11-06 16:48:12 浏览数 (3)

ggplot2画箱线图默认情况下所有的线都是实线,如下

代码语言:javascript复制
ggplot(HMP,aes(x=country,y=log10(rel_crAss))) 
  geom_boxplot()

可以通过加参数linetype更改线的类型,比如改成虚线

代码语言:javascript复制
ggplot(HMP,aes(x=country,y=log10(rel_crAss))) 
  geom_boxplot(linetype="dashed")

但是现在遇到一个问题是所有的线都变成虚线了,我想要矩形的边框变成实线,那该如何实现呢?经过搜索找到了一个解决办法 链接是 https://stackoverflow.com/questions/53170465/how-to-make-a-base-r-style-boxplot-using-ggplot2

原来有一个函数stat_boxplot()可以只画箱线图的矩形,实现代码是

代码语言:javascript复制
ggplot(HMP,aes(x=country,y=log10(rel_crAss))) 
  stat_boxplot(aes(ymin=..lower..,ymax=..upper..))

直接把这个图形叠加到全是虚线边框的箱线图上就可以了

代码语言:javascript复制
ggplot(HMP,aes(x=country,y=log10(rel_crAss))) 
  geom_boxplot(linetype="dashed") 
  stat_boxplot(aes(ymin=..lower..,ymax=..upper..))

添加最大值最小值的小横线

代码语言:javascript复制
ggplot(HMP,aes(x=country,y=log10(rel_crAss))) 
  geom_boxplot(linetype="dashed",color="blue") 
  stat_boxplot(aes(ymin=..lower..,ymax=..upper..,
                   fill=country),
               color="red") 
  stat_boxplot(geom = "errorbar",aes(ymin=..ymax..),
               width=0.2,color="red") 
  stat_boxplot(geom = "errorbar",aes(ymax=..ymin..),
               width=0.2,color="green")

这个配色也是没谁了,哈哈哈!

0 人点赞