【发布时间】:2018-11-18 19:30:18
【问题描述】:
使用 ggplot,我想在文本中添加一个左对齐的图例标题,其中包含多行和指数,用于图例中值的单位。我正在绘制类似于以下形式的数据:
leakage_rates_levels <- c(5.4, 0.25)
leakage_rates <- as.factor(rep(leakage_rates_levels, 3)) # L/s-m^2 at 75 Pa
data_groups_levels <- c('Set 1', 'Set 2', 'Set 3')
data_groups <- as.factor(rep(data_groups_levels, each=2))
moisture_level <- c(7, 3, 11, 10, 16, 6)
plotdt <- data.frame(data_groups, leakage_rates, moisture_level)
我使用expression() 为图例中的单位添加指数。以下代码生成所需的图形,但图例标题文本格式错误。
ggplot(plotdt, aes(data_groups)) +
geom_bar(aes(weight=moisture_level, fill=leakage_rates), position='dodge') +
labs(y='Moisture Level') +
labs(fill=expression(paste('Leakage Rate\nat 75 Pa\n(L/s-', m^2, ')', sep=''))) +
theme(panel.grid.major.x = element_blank(),
axis.title.x = element_blank())
除了最后一行,图例标题左对齐,中间有一堆多余的空格。
在theme() 中使用legend_title_align=0(建议here)和/或legend_title=element_text(hjust=1) 无效。尝试添加phantom() 间距也不起作用(建议here)。 this question 的最佳答案的结尾指出了我遇到的相同问题,但没有提出解决方案。
有没有办法让图例中的米平方项像文本的其余部分一样左对齐?
我正在使用 ggplot 3.1.0 和 R 3.5.1。
【问题讨论】: