Multi-line legend text including exponent with ggplot
使用 ggplot,我想在文本中添加一个左对齐的图例标题,其中包含多行和指数,用于图例中值的单位。我正在绘制类似于以下形式的数据:
1 2 3 4 5 6 | 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) |
我使用
1 2 3 4 5 6 7 8 | 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\ at 75 Pa\ (L/s-', m^2, ')', sep=''))) + theme(panel.grid.major.x = element_blank(), axis.title.x = element_blank()) |
图例标题左对齐,除了最后一行,中间有一堆多余的空格。
在
有没有办法让图例中的米平方项像文本的其余部分一样左对齐?
我正在使用 ggplot 3.1.0 和 R 3.5.1。
您可以使用上标二 (U 00B2) 的 unicode 表示并避免
1 2 3 4 5 6 7 8 | ggplot(plotdt, aes(data_groups)) + geom_bar(aes(weight=moisture_level, fill=leakage_rates), position='dodge') + labs(y='Moisture Level') + labs(fill=paste('Leakage Rate\ at 75 Pa\ (L/s-m\\u00b2)', sep='')) + theme(panel.grid.major.x = element_blank(), axis.title.x = element_blank()) |
您可以使用
因为你有 3 行并且
1 2 3 4 5 6 7 | ggplot(plotdt, aes(data_groups)) + geom_bar(aes(weight = moisture_level, fill = leakage_rates), position ="dodge") + labs(y ="Moisture Level") + labs(fill = expression(atop(atop(textstyle("Leakage Rate"), textstyle("at 75 Pa")), "(L/s-" ~m^2~")"))) + theme(panel.grid.major.x = element_blank(), axis.title.x = element_blank()) |