【问题标题】:Is there a way to change background color or color the inverse of the input sets?有没有办法改变背景颜色或输入集的反色?
【发布时间】:2020-10-05 14:59:28
【问题描述】:

我正在开发一个闪亮的应用程序,让学生通过动态欧拉 (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))

【问题讨论】:

  • 不清楚我们要做什么,在第一个图中您希望交叉点 A&B 为蓝色,在第二个图中您希望如图所示,所以 A 减去 B 是蓝色的?如果是,那么对于第一种情况,使用颜色,而不是 fills = c(FALSE, FALSE, TRUE) 尝试:fills = c("white", "white", "blue") ?
  • 我的错。我在第一个代码 sn-p 中留下了 par(bg = 'blue') 以说明它没有做任何事情。我不希望那里改变背景。对于第二个示例,我希望背景也发生变化,以获得这样的插图:en.wikipedia.org/wiki/Set_(mathematics)#/media/… 除了我将其编码为 B 的补充,而维基百科显示了 A 的补充。

标签: r plot r-grid venn-diagram eulerr


【解决方案1】:

由于输出是一个 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,
     fills = c("blue", "white", "white"),
     labels = list(col = "black", font = 4))

dev.off()

两种解决方案都会输出下图:

【讨论】:

  • 太棒了!我相信这会让我得到我想要的。我开始研究网格库,但没有快速找到解决方案的经验。
猜你喜欢
  • 2020-12-10
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 1970-01-01
  • 2012-03-20
相关资源
最近更新 更多