我已经使用ggvenn生成了一个Venn图和一个具有三列的CSV文件.

在我最后的PNG(附件)中,在dro和xvm组之间计算了一个附加值(我用一个箭头和"?"用绿色圈出了这个值).Dro和xvm总共应该有3个值,并且不应该只在dro和xvm之间共享.相反,它们总共有4个值,一个神秘的共享值正在产生.我已经判断了CSV文件,以确保没有隐藏空格等,除此之外,我无法计算出这些额外的共享值是从哪里来的.

以下是我的代码

#load the csv
data <- read.table("infile.csv", header = T, sep = ",")

# the data are laid out in columns, with features in a list under each header. ggvenn will identify the shared and unique features.
# convert data to a format suitable for ggvenn
ggvenn_data <- list(
  Dro = data$Dro_v_Con,
  Foc = data$Foc_v_Con,
  Xvm = data$Xvm_v_Con
)

当我选中ggvenn_data时,似乎没有添加任何值(xvm为n=3,dro为n=3):

print(ggvenn_data)

$Dro
 [1] "M830.837T11.111"  "M883.492T15.092"  "M367.151T397.982" ""                
 [5] ""                 ""                 ""                 ""                
 [9] ""                 ""                

$Foc
 [1] "M883.492T15.092"  "M1279.087T13.111" "M830.837T11.111"  "M1116.775T17.12" 
 [5] "M1244.755T16.127" "M1030.792T17.119" "M1334.742T13.111" "M1239.758T16.118"
 [9] "M1472.714T13.108" "M970.807T12.104" 

$Xvm
 [1] "M1094.782T12.105" "M991.807T13.109"  "M830.837T11.111"  ""                
 [5] ""                 ""                 ""                 ""                
 [9] ""                 ""    

然后我建立我的维恩图;

ggvenn_plot <- ggvenn(ggvenn_data, fill_color = c("#0073C2FF", "#EFC000FF", "#CD534CFF"),
  stroke_size = 0.5, show_percentage = F, show_elements = F) +
  theme_void()

最终的图像包含一个额外的在dro和xvm之间共享的"1".我试着用show_elements = T看看有没有什么神秘的文字,但这一节是空白的.那么"1"从何而来呢?有人能帮帮忙吗,我卡住了!?我已经在谷歌上四处寻找了一下,但我在其他地方找不到这个问题.

enter image description here

编辑:Addition of reproducible example of data

dput(ggvenn_data)

list(Dro = c("M830.837T11.111", "M883.492T15.092", "M367.151T397.982", 
"", "", "", "", "", "", ""), Foc = c("M883.492T15.092", "M1279.087T13.111", 
"M830.837T11.111", "M1116.775T17.12", "M1244.755T16.127", "M1030.792T17.119", 
"M1334.742T13.111", "M1239.758T16.118", "M1472.714T13.108", "M970.807T12.104"
), Xvm = c("M1094.782T12.105", "M991.807T13.109", "M830.837T11.111", 
"", "", "", "", "", "", ""))

推荐答案

问题是空字符串被算作一个类别.要解决这个问题,请将它们从数据中删除:

library(ggvenn)

ggvenn_data <- ggvenn_data |> 
  lapply(\(x) x[!x == ""])

ggvenn(ggvenn_data,
  fill_color = c("#0073C2FF", "#EFC000FF", "#CD534CFF"),
  stroke_size = 0.5, show_percentage = F, show_elements = F
) +
  theme_void()

R相关问答推荐

高质量地将R格式的图表从Word中输出

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

基于不同组的列的相关性

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

是否可以创建一个ggplot与整洁判断的交互作用

如果可能,将数字列转换为整数,否则保留为数字

如何从R ggplot图片中获取SVG字符串?

如何在分组条形图中移动相关列?

合并后返回列表的数据帧列表

从多个可选列中选取一个值到一个新列中

按组内中位数分类

R中治疗序列的相对时间指数

自定义交互作用图的标签

通过R:文件名未正确写入[已解决]将.nc文件转换和导出为.tif文件

是否有一个R函数可以输出在输入的字符向量中找到的相应正则表达式模式?

以R表示的NaN值的IS.NA状态

识别部分重复行,其中一行为NA,其重复行为非NA

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题

为什么R列名称忽略具有指定名称的向量,而只关注索引?

如何从矩阵绘制环弦图