我正在开发一个闪亮的应用程序,让学生探索基本的概率方程和符号,用动态Euler (Venn)图来响应概率的变化,并显示两个集合的交集,一个集合的并和另一个集合的逆序,等等。
到目前为止,我发现我可以与eulerr最接近,但我希望能够改变背景颜色,或者找到一种方法来说明包含“背景”的集合,例如(A,⋃B)的逆。我可以用白色表示这些图表的所选集合,但我更愿意保持一致。
我试过使用par(bg = 'blue'),但这似乎对eulerr中的绘图没有影响,而且文档中似乎没有任何内容。
我是不是遗漏了一些变通方法或参数,或者这是不可能的?
我也很乐意使用不同的包。
举例说明A⋂B:
library("eulerr")
fit <- euler(c("A" = 10, "B" = 5, "A&B" = 3))
plot(fit, fills = c(FALSE, FALSE, TRUE), labels = list(col = "red", font = 4))

如果背景颜色变化有效的话,这将说明B的反例。
fit <- euler(c("A" = 10, "B" = 5, "A&B" = 3))
par(bg = 'blue')
plot(fit,
fills = c("blue", "white", "white"),
labels = list(col = "black", font = 4))

发布于 2020-10-07 19:58:57
由于输出是网格对象,我将研究网格库,参见示例:
library(grid)
# plot, assign to object
x <- plot(fit,
fills = c("blue", "white", "white"),
labels = list(col = "black", font = 4), bg = "blue")
# now use grid
grid.newpage()
# background is red
grid.draw(rectGrob(gp = gpar(fill = "red")))
# now add eulerr plot
grid.draw(x)或者输出为png,因为它有背景参数,这里我将背景设置为红色,以说明:
png("test.png", bg = "red")
plot(fit,
fills = c("blue", "white", "white"),
labels = list(col = "black", font = 4))
dev.off()这两种解决方案都将输出到下面的图像:

https://stackoverflow.com/questions/64211189
复制相似问题