gpt4 book ai didi

python - 使用 R 或 Matplotlib (Python),如何根据 CSV 文件每一行的值比较创建维恩图?

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:17 24 4
gpt4 key购买 nike

我有一个需要制作维恩图的项目,并且我开始学习 python(使用 2.7),所以我认为尝试学习 R 也会让我的工作负担过重。所以,我在网上学习了matplotlib。基本上,我需要做的是创建一个维恩图,比较每列下的值以生成维恩图。因此,如果我的 csv 具有以下数据:

Month    x    y
Sept -1 1
Oct 0 1
Nov 1 1
Dec -1 -1

重叠将显示值为 2(因为 nov 和 dec 具有相同的值),x 圆圈本身将显示值为 1,从 sept 开始(需要忽略 0),y 圆圈将从 9 月到 10 月显示值为 2。

我认为这是一个非常复杂的程序,但我不知道从哪里开始,除了从:

from matplotlib_venn import venn2

当我使用 Venny 等在线工具时,它只是找到列表之间相似的数字,而不是逐行比较。这不会导致外圈中的值 0 和重叠中的数字 3(因为输入中存在三个不同的值:-1、0 和 1。

或者,如果使用 R 而不是 Python 会非常容易,你能帮我吗?

任何帮助将不胜感激,谢谢!

最佳答案

在 R 中有很多选项可以构建维恩图。你可以得到其中的一些

library(sos)
findFn('Venn diagramm')

例如使用VennDiagram(列表中的第一个)你可以得到这个图。我使用随机值生成它,因为您不太清楚您如何考虑问题中的共享区域和交叉区域。

enter image description here

library(VennDiagram)
# You should replace the random values here by your set of values
##
set.seed(1)
A <- sample(1:100, 25, replace = FALSE)
B <- sample(1:100, 25, replace = FALSE)
C <- sample(1:100, 25, replace = FALSE)
D <- sample(1:100, 25, replace = FALSE)

venn.plot <- venn.diagram(
x = list(
Sept = A,
Oct = D,
Nov = B,
Dec = C
),
filename = NULL,
col = "transparent",
fill = c("cornflowerblue", "green", "yellow", "darkorchid1"),
alpha = 0.50,
label.col = c("orange", "white", "darkorchid4", "white",
"white", "white", "white", "white", "darkblue", "white",
"white", "white", "white", "darkgreen", "white"),
cex = 1.5,
fontfamily = "serif",
fontface = "bold",
cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),
cat.cex = 1.5,
cat.pos = 0,
cat.dist = 0.07,
cat.fontfamily = "serif",
rotation.degree = 270,
margin = 0.2
)

grid.draw(venn.plot)

关于python - 使用 R 或 Matplotlib (Python),如何根据 CSV 文件每一行的值比较创建维恩图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com