有没有一种方法可以更改背景色或为输入集取反色?

问题描述

我正在开发一个闪亮的应用程序,让学生使用动态欧拉(venn)图探索基本的概率方程和表示法,以响应概率的变化并显示两个集合的交集,并集,一个集合的并集与另一个的倒数,依此类推。

到目前为止,我发现我可以使用eulerr获得最接近的结果,但是我希望能够更改背景颜色,或者希望找到一种方法来说明包含“背景”的集合,例如(A⋃B)的倒数。我可以用白色代表这些图的选定集合,但我希望保持一致。

我尝试使用par(bg = 'blue'),但这似乎对eulerr中的plot没有影响,并且文档中似乎没有任何内容

我是否缺少某些解决方法或参数,或者这是不可能的吗?

我也很乐意使用其他软件包。

说明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))

enter image description here

如果背景颜色更改有效,则该示例将说明B的倒数。

fit <- euler(c("A" = 10,"A&B" = 3))
par(bg = 'blue')
plot(fit,fills = c("blue","white","white"),labels = list(col = "black",font = 4))

enter image description here

解决方法

由于输出是 grid 对象,因此我将探索 grid 库,请参见示例:

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,font = 4))

dev.off()

两种解决方案都将在图像下方输出:

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...