【问题标题】:Outlined letters in text ggplot2 - 538 style文本 ggplot2 - 538 样式中的轮廓字母
【发布时间】:2021-12-30 09:53:48
【问题描述】:

有谁知道是否可以在 ggplot2 538 中复制绘图中的文本轮廓功能?

在附加的示例中。是否可以将圆形白色轮廓添加到百分比?

【问题讨论】:

标签: r ggplot2


【解决方案1】:

一个选项是shadowtext 包,第二个选项是ggrepel

library(ggplot2)
library(shadowtext)

df <- data.frame(
  x = factor(1),
  y = factor(1),
  label = "78%"
)
ggplot(df, aes(x = x, y = y, label = label)) +
  geom_tile(fill = "firebrick") +
  geom_shadowtext(color = "black", size = 14 / .pt, fontface = "bold", bg.colour = "white", bg.r = .2) +
  theme_void()

library(ggrepel)

ggplot(df, aes(x = x, y = y, label = label)) +
  geom_tile(fill = "firebrick") +
  geom_text_repel(color = "black", size = 14 / .pt, fontface = "bold", bg.colour = "white", bg.r = .2, force = 0) +
  theme_void()

【讨论】:

  • 不知道 shadowtext 或这个特殊的 ggrepel 功能。整洁的。一天的学习点:)
【解决方案2】:

您可以简单地使用sprintf 在标签下添加下划线。 我使用来自vcd 包的Arthritis 数据集来演示这个示例。

你会这样做:

parseLabel <- sprintf("underline(%s)~\n~%s",
                      gsub(" ", "~", df$Treatment, fixed = TRUE),
                      gsub(" ", "~", length(df$Treatment), fixed = TRUE))

p <- ggplot(df, aes(x = Treatment)) +
  geom_histogram(stat = "count") +
  stat_count(geom = "text", color = "white", size = 3.5,
             aes(label = parseLabel), position = position_stack(vjust = 0.5), parse = T)

p + theme_fivethirtyeight()

输出如下所示:

【讨论】:

  • 谢谢 Vishal,但我不想在文字下划线。目标是在其周围添加白色“气泡”。
  • @PabloAB 你的问题最初确实说下划线;我只是把它改成了大纲,但这个答案似乎是基于你使用的术语
  • 谢谢卡米尔!
猜你喜欢
  • 2012-05-28
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多