gpt4 book ai didi

r - 多行图例文本,包括带 ggplot 的指数

转载 作者:行者123 更新时间:2023-12-04 10:54:08 25 4
gpt4 key购买 nike

使用 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())

图例标题显示左对齐,除了最后一行,中间有一堆多余的空格。

Three line legend text where the third line indicates the units, liters per second meter squared, but the meter squared term is pushed to the right margin while all the other text is left aligned, leaving a large white space in the middle of the third line.

使用 legend_title_align=0 (建议 here)和/或 legend_title=element_text(hjust=1)theme()没有效果。正在尝试添加 phantom()间距也不起作用(建议 here)。顶回复 this question结束注意到我遇到的同样问题,但没有提出解决方案。

有没有办法让图例中的米平方项像文本的其余部分一样左对齐?

我正在使用 ggplot 3.1.0 和 R 3.5.1。

最佳答案

您可以使用上标二 (U+00B2) 的 unicode 表示并避免expression()的问题组合和多行图例标题:

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\nat 75 Pa\n(L/s-m\u00b2)', sep='')) +
theme(panel.grid.major.x = element_blank(),
axis.title.x = element_blank())

Plot using Superscript

关于r - 多行图例文本,包括带 ggplot 的指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com