ggplot2如何增大坐标轴标题与坐标轴之间的边距
问题原因
- 错误将
theme_set()函数放在了ggplot的链式调用中:theme_set()是全局主题设置函数,不能通过+和ggplot图层绑定,会导致后续的theme()参数优先级异常,修改不生效。 - 你设置的
axis.title.ymargin参数没有正确加入到当前的theme()参数列表中,同时margin需要指定单位才能正确识别。
解决方法
修改后的完整代码如下:
library(ggplot2) AvsCa <- read.csv("AvsCa.csv") ggplot(data = AvsCa, aes(x = Ca, y = A, group = Light_Level, color = Light_Level))+ geom_point()+ geom_line()+ labs(y=expression("CO"["2"]*~"Assimilation Rate"~italic(A)~"(µmol"~~m^-2*s^-1*")"), x=expression("Ambient CO"["2"]*~"Concentration, C"["a"]*~"(µmol mol"^-1*")"))+ scale_y_continuous(sec.axis=dup_axis())+ # 替换原来的theme_set(theme_bw()),直接调用主题 theme_bw()+ theme( # 加入y轴标题边距设置,可自行调整r参数数值修改边距大小 axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0, unit = "pt")), # 如需调整x轴标题边距可取消注释下面一行,调整t参数数值即可 # axis.title.x = element_text(margin = margin(t = 20, r = 0, b = 0, l = 0, unit = "pt")), axis.ticks.length=unit(-0.1, "cm"), axis.text.x.top=element_blank(), axis.text.y.right=element_blank(), axis.title.x.top=element_blank(), axis.title.y.right=element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), legend.position = c(.2,.8) )+ scale_color_discrete(name="Qin (Light Intensity)", labels=c(expression("1000 µmol m"^-2*s^-1), expression("1500 µmol m"^-2*s^-1)))
内容的提问来源于stack exchange,提问作者glennca
相关产品推荐
相关产品推荐

