y-axis 和框之间以及框与框之间的间距
Spacing between y-axis and box and between boxes
我在创建箱线图时遇到了一些问题。
1) 如何减小 y-axis 和第一个框之间以及两个框之间的间距?
2) 如何让 y-axis-title 加粗?上标好像有问题
3) 如何使用图例的特定颜色创建简单的方块来指示组?
期待您的回复!
library(ggplot2)
d <- data.frame(IVCe.bin=factor(c(1,1,1,1,1,1,1, 0,0,0,0,0,0,0)),
eGFR.MDRD=c(90,95,98,94,88,85,100, 80, 60,66,62,69,72,78))
g <- ggplot(data=d, aes(x=IVCe.bin, y=eGFR.MDRD, group=IVCe.bin, fill=IVCe.bin)) +
stat_boxplot(geom ='errorbar', width=0.1, lwd=1) +
geom_boxplot(lwd=1, width=0.25) +
theme_bw() +
theme(legend.position="top") +
theme( panel.grid.major = element_blank() ) +
theme( panel.grid.minor = element_blank() ) +
theme( panel.border = element_blank()) +
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), axis.line.x = element_blank(), axis.title.x=element_blank()) +
ylab(~"eGFR [ml/min/1.73m"^2) +
theme(axis.ticks.y = element_line(color='black', size=1)) +
theme(axis.line.y = element_line(color='black', size=1)) +
theme(axis.text.y=element_text(size=15)) +
theme(axis.title.y=element_text(size=15, hjust=0.5, vjust=10, face="bold")) +
theme(axis.ticks.length = unit(.25, "cm")) # Länge der Ticks
print(g)
(g <- g + scale_fill_discrete(breaks=c(0, 1), labels=c("Control", "Intervention")))
(g <- g + labs(fill="")) # Keine Legendentitel
(g <- g + theme(legend.text = element_text(colour="black", size = 15, face = "plain")))
(g <- g + theme(legend.key = element_blank()))
我认为你不能。但是,您可以增加方框的宽度(例如 width=1
),然后在保存时减小绘图的宽度,这将产生相同的效果。
在 ylab
中使用 bquote(bold())
(顺便说一句,我想你漏掉了一个 ])
使用 guides()
和 override.aes()
代码如下:
g <- ggplot(data=d, aes(x=IVCe.bin, y=eGFR.MDRD, group=IVCe.bin, fill=IVCe.bin)) +
stat_boxplot(geom ='errorbar', width=0.1, lwd=1) +
geom_boxplot(lwd=1, width=1) + # change width of boxes (1)
theme_bw() +
theme(legend.position="top") +
theme( panel.grid.major = element_blank() ) +
theme( panel.grid.minor = element_blank() ) +
theme( panel.border = element_blank()) +
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), axis.line.x = element_blank(), axis.title.x=element_blank()) +
ylab(bquote(bold(~"eGFR [ml/min/1.73m"^2))) + # turn axis title bold (2)
theme(axis.ticks.y = element_line(color='black', size=1)) +
theme(axis.line.y = element_line(color='black', size=1)) +
theme(axis.text.y=element_text(size=15)) +
theme(axis.title.y=element_text(size=15, hjust=0.5, vjust=10)) +
theme(axis.ticks.length = unit(.25, "cm")) # Länge der Ticks
print(g)
(g <- g + scale_fill_discrete(breaks=c(0, 1), labels=c("Control", "Intervention")))
(g <- g + labs(fill="")) # Keine Legendentitel
(g <- g + theme(legend.text = element_text(colour="black", size = 15, face = "plain")))
(g <- g + theme(legend.key = element_blank()))
g + guides(fill=guide_legend(override.aes=list(colour=c(NA,NA),
shape=c(NA,NA)))) # change legend key symbol (3)
顺便说一句。我认为 SO 上的人更希望您不要在一个问题中提出多个问题。
我在创建箱线图时遇到了一些问题。
1) 如何减小 y-axis 和第一个框之间以及两个框之间的间距?
2) 如何让 y-axis-title 加粗?上标好像有问题
3) 如何使用图例的特定颜色创建简单的方块来指示组?
期待您的回复!
library(ggplot2)
d <- data.frame(IVCe.bin=factor(c(1,1,1,1,1,1,1, 0,0,0,0,0,0,0)),
eGFR.MDRD=c(90,95,98,94,88,85,100, 80, 60,66,62,69,72,78))
g <- ggplot(data=d, aes(x=IVCe.bin, y=eGFR.MDRD, group=IVCe.bin, fill=IVCe.bin)) +
stat_boxplot(geom ='errorbar', width=0.1, lwd=1) +
geom_boxplot(lwd=1, width=0.25) +
theme_bw() +
theme(legend.position="top") +
theme( panel.grid.major = element_blank() ) +
theme( panel.grid.minor = element_blank() ) +
theme( panel.border = element_blank()) +
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), axis.line.x = element_blank(), axis.title.x=element_blank()) +
ylab(~"eGFR [ml/min/1.73m"^2) +
theme(axis.ticks.y = element_line(color='black', size=1)) +
theme(axis.line.y = element_line(color='black', size=1)) +
theme(axis.text.y=element_text(size=15)) +
theme(axis.title.y=element_text(size=15, hjust=0.5, vjust=10, face="bold")) +
theme(axis.ticks.length = unit(.25, "cm")) # Länge der Ticks
print(g)
(g <- g + scale_fill_discrete(breaks=c(0, 1), labels=c("Control", "Intervention")))
(g <- g + labs(fill="")) # Keine Legendentitel
(g <- g + theme(legend.text = element_text(colour="black", size = 15, face = "plain")))
(g <- g + theme(legend.key = element_blank()))
我认为你不能。但是,您可以增加方框的宽度(例如
width=1
),然后在保存时减小绘图的宽度,这将产生相同的效果。在
ylab
中使用bquote(bold())
(顺便说一句,我想你漏掉了一个 ])使用
guides()
和override.aes()
代码如下:
g <- ggplot(data=d, aes(x=IVCe.bin, y=eGFR.MDRD, group=IVCe.bin, fill=IVCe.bin)) +
stat_boxplot(geom ='errorbar', width=0.1, lwd=1) +
geom_boxplot(lwd=1, width=1) + # change width of boxes (1)
theme_bw() +
theme(legend.position="top") +
theme( panel.grid.major = element_blank() ) +
theme( panel.grid.minor = element_blank() ) +
theme( panel.border = element_blank()) +
theme(axis.text.x=element_blank(), axis.ticks.x = element_blank(), axis.line.x = element_blank(), axis.title.x=element_blank()) +
ylab(bquote(bold(~"eGFR [ml/min/1.73m"^2))) + # turn axis title bold (2)
theme(axis.ticks.y = element_line(color='black', size=1)) +
theme(axis.line.y = element_line(color='black', size=1)) +
theme(axis.text.y=element_text(size=15)) +
theme(axis.title.y=element_text(size=15, hjust=0.5, vjust=10)) +
theme(axis.ticks.length = unit(.25, "cm")) # Länge der Ticks
print(g)
(g <- g + scale_fill_discrete(breaks=c(0, 1), labels=c("Control", "Intervention")))
(g <- g + labs(fill="")) # Keine Legendentitel
(g <- g + theme(legend.text = element_text(colour="black", size = 15, face = "plain")))
(g <- g + theme(legend.key = element_blank()))
g + guides(fill=guide_legend(override.aes=list(colour=c(NA,NA),
shape=c(NA,NA)))) # change legend key symbol (3)
顺便说一句。我认为 SO 上的人更希望您不要在一个问题中提出多个问题。