R语言ggplot2绘制柱状图,相设置y轴范围在0到0.5,间隔0.1,breaks=seq(0,0.5,0.1);刻度用scale_y_continuous()内置labels设置为"0,10%,20%,30%,40%,50%"。但y轴只能显示数据中的最大值,却不显示y的最大值"0.5"。
代码和图片如下:
ggplot(family = "Times New Roman")+
geom_bar(data = melt_Gdata,stat="identity",width=0.4,aes(x=Year,y=value,fill=variable),position="stack")+
labs(x="Years",y="Recruitment(%)")+
scale_fill_manual(values=c("goldenrod1","honeydew3","lightpink2","blanchedalmond","yellow2","lightgoldenrod3","darkgoldenrod3","lightcoral","sandybrown","cornflowerblue","coral"),name="Coral Taxon")+
theme(panel.grid = element_blank())+
scale_y_continuous(expand = c(0,0),breaks = c(0,0.1,0.2,0.3,0.4,0.5) )
改成 position=dodge后:
ggplot(family = "Times New Roman")+
geom_bar(data = melt_Gdata,stat="identity",width=0.4,aes(x=Year,y=value,fill=variable),position="dodge")+
labs(x="Years",y="Recruitment(%)")+
scale_fill_manual(values=c("goldenrod1","honeydew3","lightpink2","blanchedalmond","yellow2","lightgoldenrod3","darkgoldenrod3","lightcoral","sandybrown","cornflowerblue","coral"),name="Coral Taxon")+
theme(panel.grid = element_blank())+
scale_y_continuous(expand = c(0,0),breaks = c(0,0.1,0.2,0.3,0.4,0.5) )
引用 皆我百晓生 小程序回复内容作答:
根据你提供的代码和图片,你正在使用 ggplot2
库的 R 语言包来绘制柱状图。你想要调整 y 轴的范围并显示特定的刻度标签。然而,无论你如何设置刻度标签和范围,柱状图的柱子总是顶到图的顶部。
在你的代码中,通过 scale_y_continuous
函数设置了y轴的范围和刻度标签。但是,可能由于数据中的最大值太接近图的顶部,导致柱子顶到了图的顶部。这可能使得 y 轴上的最大值 "0.5" 无法完全显示出来。
要解决这个问题,你可以尝试调整两个方面:
1.调整图的高度或宽度,以使得图的区域可以容纳 y 轴上的最大值 "0.5"。
2.通过增加 expand
参数的值,来增加 y 轴的上下空白区域。例如,将 expand = c(0, 0)
更改为 expand = c(0.05, 0.05)
,这将在 y 轴的范围两端增加一些空白。
你可以尝试这两种方法来解决柱子顶到图顶的问题。希望能对你有所帮助!