r - 在欧拉图中绘制带有分割法线和斜体面的标签 (euler)
问题描述
该eulerr
库使用以下代码生成一个图:
library(tidyverse)
library(eulerr)
matrix(data = c(T,T,T,F,T,F,T,F,T,T,T,F,F,F,T), ncol=3) %>%
venn %>%
plot(
labels = c(
"Left",
"Right",
"Oh, right"),
main = expression("Oh,"~italic("right"))
)
我需要在标签中有斜体字体,但只是部分。我希望第三个标签的格式类似于标题:哦,对了。
我在设置时尝试了 , , , , 的各种paste
排列expression
,bquote
但substitute
无济于事label =
。
想法?
解决方案
创建维恩图后,您可以尝试使用getGrob
和替换文本。setGrob
library(eulerr)
mat <- matrix(data = c(T,T,T,F,T,F,T,F,T,T,T,F,F,F,T), ncol=3)
v <- venn(mat)
p <- plot(v,
labels = c(
"Left",
"Right",
"Oh, right"),
main = expression("Oh,"~italic("right"))
)
p
gg <- getGrob(p, "tag.label.3")
gg[[1]] <- expression(bold("Oh,"~bolditalic("yes!")))
setGrob(p, "tag.label.3", gg)
编辑:要找到需要编辑的 grob,您可以使用以下内容grid.ls
:
library(grid)
grid.ls(p)
这将列出您的情节中的 grobs 的名称,包括tag.label.3
:
euler.diagram
main.grob
canvas.grob
diagram.grob.1
fills.grob.1
fills.grob.2
fills.grob.3
fills.grob.4
fills.grob.5
fills.grob.6
fills.grob.7
edges.grob
tags
tag.number.1
tag.label.1
tag.quantity.1
tag.number.2
tag.label.2
tag.quantity.2
tag.number.3
tag.label.3
tag.quantity.3
tag.number.4
GRID.null.1
tag.quantity.4
tag.number.5
GRID.null.2
tag.quantity.5
tag.number.6
GRID.null.3
tag.quantity.6
tag.number.7
GRID.null.4
tag.quantity.7
通过反复试验,我发现这tag.label.3
是所需的文本。
此外,查看eulerr
包装,您有:
# from tag-grobs.R in eulerr package
labels_grob <- textGrob(
label,
x = unit(x, "native"),
y = unit(y, "native"),
rot = labels$rot[data$labels_par_id],
gp = labels$gp[data$labels_par_id],
name = paste0("tag.label.", data$labels_par_id)
)
Wheretag.label.
用作文本标签的前缀。
推荐阅读
- f# - F#找到偶数的第一个出现
- android - RecyclerView inside MotionLayout :错误处理滚动;未找到 id -1 的指针索引。是否跳过了任何 MotionEvents?
- android - 如何将android视图文本动态更改为大写和小写
- node.js - 使用 mongo 查询更新 json 数组的最佳方法
- mysql - Mysql:相同的查询,相同数量的结果行,没有连接,慢 10 倍?
- php - 无法比较在 php 中创建的 cookie 的时间
- mysql - 从 MySQL 8.0.16 迁移到 MySQL 5.5 - 错误的重音和特殊字符
- node.js - Socket.io why very slow?
- react-native - Snapshot unit test fail for react-native-modal-datetime-picker
- regex - .NET Regex Balancing Groups and syntax matching