【问题标题】:Plotting subset os subset in R在 R 中绘制子集的子集
【发布时间】:2017-10-05 11:04:37
【问题描述】:

我有一个如下的data.frame:

           files
Total      1000
Subset1     587
Subset2     123 

我想以这样一种方式表示上述数据框,即 123 个文件是 587 个文件的子集,而 587 个文件本身是 1000 个文件的子集。当我使用饼图或条形图时,会产生误导。

如果我的问题非常业余,我深表歉意。请指导我如何在 R 图中表示上述数据。

【问题讨论】:

  • 这个数字不加起来。如果存在三个类别,则总和应为 1000,计数应为 (587,123,290),否则如果只有两个类别,则计数应为 (587, 413)。排序后,您可以使用堆积条形图或 R 中的维恩图。
  • 或者使用不透明的重叠条形图:stackoverflow.com/questions/23228082/…

标签: r dataframe subset


【解决方案1】:

大概是这样的:

df = data.frame(files=c(1000,587,123),row.names = c('total','subset1','subset2'))
library(VennDiagram)
draw.triple.venn(area1 = df$files[1], area2 = df$files[2], area3 = df$files[3], 
                n12 = 587, n23 = 123, n13 = 123, n123 = 123, 
                category = c("Total", "Subset1", "Subset2"), 
                lty = "blank", fill = c("skyblue", "pink1", "mediumorchid"),
                cat.pos = 0,cat.dist = c(-0.02,-0.05,-0.02))

结果:

【讨论】:

    【解决方案2】:

    你可以这样做:

    df$files[1] <- df$files[1] - sum(df$files[-1])
    
    pie(df$files, df$sets)
    

    结果:

    数据:

    df <- read.table(text="  sets         files
    Total      1000
    Subset1     587
    Subset2     123 ", header=TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2016-03-10
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多