1

我正在尝试用两层条制作一个情节。我希望第一层条带具有水平文本方向,第二层具有垂直文本方向。

在下面的示例中,我希望显示“水平”的条带图层是水平的,并且希望“1999”和“2008”保持垂直。

library(ggplot2)
library(ggtext)
library(glue)

df <- mpg
df$outer <- "horizontal"

p <- ggplot(df, aes(displ, cty)) +
  geom_point() +
  theme(
    strip.text.y.left = element_markdown()
  )

p + facet_grid(
  outer + year ~ ., 
  switch = "y"
)

ggtext 包很棒,因为它允许我们使用ggtext::element_markdown()html 标签有条件地格式化条带的图层,如下例所示:

p + facet_grid(
  glue("<span style = 'color:red'>{outer}</span>") + year ~ .,
  switch = "y"
)

reprex 包于 2021-07-11 创建(v1.0.0)

我可以使用 (HTML) 标签来使文本方向水平,而不是应用红色?我对 HTML 不是很流利。在谷歌搜索了一些选项后,我尝试了以下跨度但没有成功:

"<span style = 'transform:rotate(90deg)'>"
"<span style = 'text-orientation:sideways'>"

作为旁注:我知道我可以编辑绘图的 gtable 以手动编辑标签等。这正是我试图不做的事情!

除了解决我的问题之外,还有其他两种方式我认为我的问题得到了回答。

  • 指向某些文档的链接,该链接说(尚)无法使用 ggtext 执行此操作。如果是这种情况,请将其发布为带有简短描述的答案,以便我可以接受。ggtext 的创建者 Claus O. Wilke 对此发表评论的帖子也很好。*

  • 尝试使用规范 HTML 标记(除了我已经尝试过的两个)无法旋转文本的代码示例。然后我会知道有人尝试过比我更了解 HTML 的人,但我的问题没有明显的解决方案。

* 我知道ggtext 自述文件中的段落如下:

作为一般规则,任何 ggtext 或 gridtext 文档中未显示的 Markdown、HTML 或 CSS 功能都可能不存在。

我正在寻找一个更明确的声明,即不能使用标签旋转文本。

4

0 回答 0