首页 > 解决方案 > 大小参数在 ggplot2 的 geom_errorbar 中不起作用

问题描述

我正在尝试创建一个值范围图,以便可以将它们与一个唯一范围(由图中的灰色矩形表示)进行比较。我让图表像我想要的那样工作,但我无法有效地改变我用来表示值范围的误差线的线宽。下面的代码带有示例图。

### Graph with default line weights   
ggplot(data=droplevels(wght2[which(wght2$Zone!="Oahu"),]), aes(x=wght2$num[wght2$Zone!="Oahu"], y=(wght2[which(wght2$Zone!="Oahu"),4]+wght2[which(wght2$Zone!="Oahu"),4+3])/2, 
        group= wght2[which(wght2$Zone!="Oahu"),2], color= wght2[which(wght2$Zone!="Oahu"),2])) + 
    geom_errorbar(aes(ymin=wght2[which(wght2$Zone!="Oahu"),4], ymax=wght2[which(wght2$Zone!="Oahu"),4+3], width=0.3, color=wght2[which(wght2$Zone!="Oahu"),2])) +
    geom_rect(ymin=wght2[8,4], ymax=wght2[8,4+3], xmin=0.5, xmax=6+0.5, fill="gray25", linetype=0, alpha=0.07)+
    scale_color_manual(values=c("forestgreen","deepskyblue3","gold"))+
    scale_x_continuous(labels=levels(wght2$Zone), breaks=c(1,2,3.5,5.5))+
    labs(x="Zone",y=measure3[4]) +
    theme(axis.line = element_line(colour = "black"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank(),
        legend.text = element_text(size = 16),
        legend.title = element_text(size=16),
        axis.text = element_text(size = 16,colour="black"),
        axis.title = element_text(size = 18)) +
    theme(legend.position="topright")

### My attempt to change line weights
ggplot(data=droplevels(wght2[which(wght2$Zone!="Oahu"),]), aes(x=wght2$num[wght2$Zone!="Oahu"], y=(wght2[which(wght2$Zone!="Oahu"),4]+wght2[which(wght2$Zone!="Oahu"),4+3])/2, 
        group= wght2[which(wght2$Zone!="Oahu"),2], color= wght2[which(wght2$Zone!="Oahu"),2])) + 
    geom_errorbar(aes(ymin=wght2[which(wght2$Zone!="Oahu"),4], ymax=wght2[which(wght2$Zone!="Oahu"),4+3], width=0.3, size=0.5, color=wght2[which(wght2$Zone!="Oahu"),2])) +
    geom_rect(ymin=wght2[8,4], ymax=wght2[8,4+3], xmin=0.5, xmax=6+0.5, fill="gray25", linetype=0, alpha=0.07)+
    scale_color_manual(values=c("forestgreen","deepskyblue3","gold"))+
    scale_x_continuous(labels=levels(wght2$Zone), breaks=c(1,2,3.5,5.5))+
    labs(x="Zone",y=measure3[4]) +
    theme(axis.line = element_line(colour = "black"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank(),
        panel.background = element_blank(),
        legend.text = element_text(size = 16),
        legend.title = element_text(size=16),
        axis.text = element_text(size = 16,colour="black"),
        axis.title = element_text(size = 18)) +
    theme(legend.position="topright")

在此处输入图像描述在此处输入图像描述

从我的代码中可以看出,当我在 geom_errorbar 的 'aes' 函数中包含 'size' 参数时,即使我将其设置为默认值 0.5,线宽也会变得很大。

任何有关如何更改 geom_errorbar 中线宽的建议将不胜感激。我知道我可以用 geom_segment 画出每条线,但觉得使用 geom_errorbar 应该可以工作,并且想知道为什么不能。谢谢!

标签: rggplot2sizeerrorbar

解决方案


推荐阅读