我最近在《经济学人》上看到一个折线图,其中title had colored words to match the colors of the groups used in the line chart。我想知道如何使用ggplot2对象来实现这一点。这里有一些代码可以制作一个折线图,除了标题中的彩色单词外,所有内容都像econimist文章一样。在底部,我显示了所需的输出。
**这个问题不是关于显示这些信息的理论方法(如直接标记或图例),而是关于标题中的单个单词的着色。
data <- data.frame(
group = rep(c('affluence', 'poverty'), each = 6),
year = rep(c(1970, 1980, 1990, 2000, 2010, 2012), 2),
concentration = c(.125, .12, .14, .13, .145, .146, .068, .09, .125, .119, .13, .135)
)
library(ggplot2)
ggplot(data, aes(year, concentration, color = group)) +
geom_line(size = 1.5) +
geom_point(size = 4) +
scale_y_continuous(limits = c(0, .15)) +
labs(
x = NULL, y = NULL,
title = 'Concentration of affluence and poverty nationwide'
) +
theme_minimal() +
theme(
legend.position = 'none'
) +
scale_color_manual(values = c('#EEB422', '#238E68'))
字符串
的数据
3条答案
按热度按时间bttbmeg01#
下面是使用
ggtext
包的一种简单且更通用的方法的数据
生产:
字符串
r1zhe5dt2#
这个解决方案是基于Displaying text below the plot generated by ggplot2和Colorize parts of the title in a plot的(感谢贡献者!).
通过对文本使用
phantom
占位符,我们避免了(大部分)位置的硬编码。字符串
x1c 0d1x的数据
对于大量的彩色单词,不同
expression
的创建应该更多地以编程方式完成。例如,在base
图的类似问题中,可以看到nicemultiTitle
函数:title: words in different colors?,在ggplot
中也应该有用。apeeds0o3#
一个有点麻烦的
annotation_custom
解决方案:字符串
其给出:
的数据
这种方法的主要缺点是,它需要大量的参数,以获得正确的位置标题的话摆弄。