我正在尝试用两层条制作一个情节。我希望第一层条带具有水平文本方向,第二层具有垂直文本方向。
在下面的示例中,我希望显示“水平”的条带图层是水平的,并且希望“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 功能都可能不存在。
我正在寻找一个更明确的声明,即不能使用标签旋转文本。