乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      R|UpSet-集合可視化

       迷途中小小書童 2019-07-17

      介紹一個R包UpSetR,專門用來集合可視化,當多集合的韋恩圖不容易看的時候,就是它大展身手的時候了。


      一、R包及數(shù)據(jù)

      #安裝及加載R包
      #install.packages("UpSetR")
      library(UpSetR) 
      #載入數(shù)據(jù)集
      data <- read.csv("upSet.csv",header=TRUE)
      #先大致瀏覽一下該數(shù)據(jù)集,數(shù)據(jù)集太長,就只看前幾列
      head(data[,1:6],6)
      #View(data) #彈出窗口,可查看數(shù)據(jù)


      二、upset()函數(shù)

      使用UpsetR包里面的upset()函數(shù)繪制集合可視化圖形。


      1)基本參數(shù)

      upset(data, 
      sets = c("Action", "Adventure", "Comedy", "Drama", "Fantasy" , "Children","Crime"),#查看特定的幾個集合
       mb.ratio = c(0.55, 0.45),#控制上方條形圖以及下方點圖的比例
       order.by = "freq", #如何排序,這里freq表示從大到小排序展示
       keep.order = TRUE, #keep.order按照sets參數(shù)的順序排序
       number.angles = 30, #調(diào)整柱形圖上數(shù)字角度
       point.size = 2, line.size = 1, #點和線的大小
       mainbar.y.label = "Genre Intersections", sets.x.label = "Movies Per Genre", #坐標軸名稱
       text.scale = c(1.3, 1.3, 1, 1, 1.5, 1)) #六個數(shù)字,分別控制c(intersection size title, intersection size tick labels, set size title, set size tick labels, set names, numbers above bars)



      2)queries參數(shù)

      queries參數(shù)分為四個部分:query, param, color, active;

      query: 指定哪個query,UpSetR有內(nèi)置,也可以自定義;

      param: list, query作用于哪個交集

      color:每個query都是一個list,里面可以設(shè)置顏色,沒設(shè)置的話將調(diào)用包里默認的調(diào)色板;

      active:被指定的條形圖:TRUE顯示顏色,F(xiàn)ALSE在條形圖頂端顯示三角形;

      upset(data, main.bar.color = "black", 
      queries = list(list(query = intersects,   #UpSetR 內(nèi)置的intersects query
      params = list("Drama"), ##指定作用的交集
      color = "red", ##設(shè)置顏色,未設(shè)置會調(diào)用默認調(diào)色板
      active = F,   # TRUE:條形圖被顏色覆蓋,F(xiàn)ALSE:條形圖頂端顯示三角形
      query.name = "Drama"), # 添加query圖例
      list(query = intersects,  params = list("Action", "Drama"), active = T,query.name = "Emotional action"), 
      list(query = intersects,  params = list("Drama", "Comedy", "Action"), color = "orange", active = T)),query.legend = "top")

      3)attribute.plots參數(shù)

      添加屬性圖,內(nèi)置有柱形圖、散點圖、熱圖等


      3.1 添加柱形圖和散點圖

      upset(data, main.bar.color = "black", 
      queries = list(list(query = intersects, params = list("Drama"), color = "red", 
      active = F,  query.name = "Drama"),
      list(query = intersects,  params = list("Action", "Drama"), active = T,query.name = "Emotional action"), 
      list(query = intersects,  params = list("Drama", "Comedy", "Action"), color = "orange", active = T)),  
      attribute.plots = list(gridrows = 45, #添加屬性圖
      plots = list(
      list(plot = scatter_plot, #散點圖 
      x = "ReleaseDate", y = "AvgRating", #橫縱軸的變量
      queries = T), #T 則顯示出上面queries定義的顏色
      list(plot = histogram, x = "ReleaseDate", queries = F)), 
      ncols = 2), # 添加的圖分兩列
      query.legend = "top") #query圖例在最上方


      3.2 添加箱線圖

      每次最多添加兩個箱線圖

      upset(movies, boxplot.summary = c("AvgRating", "ReleaseDate")) 
      

      3.3 添加密度曲線圖

      因默認屬性圖中沒有密度曲線,需要自定義plot函數(shù)

      #自定義密度曲線
      another.plot <- function(data, x, y) {
          data$decades <- round_any(as.integer(unlist(data[y])), 10, ceiling)
          data <- data[which(data$decades >= 1970), ]
          myplot <- (ggplot(data, aes_string(x = x)) + geom_density(aes(fill = factor(decades)), 
              alpha = 0.4) + theme(plot.margin = unit(c(0, 0, 0, 0), "cm"), legend.key.size = unit(0.4, "cm")))
      }


      upset(data, main.bar.color = "black", mb.ratio = c(0.5, 0.5), queries = list(list(query = intersects, 
          params = list("Drama"), color = "red", active = F), list(query = intersects, 
          params = list("Action", "Drama"), active = T), list(query = intersects, 
          params = list("Drama", "Comedy", "Action"), color = "orange", active = T)), 
          attribute.plots = list(gridrows = 50, plots = list(list(plot = histogram, 
              x = "ReleaseDate", queries = F), list(plot = scatter_plot, x = "ReleaseDate", 
              y = "AvgRating", queries = T), list(plot = another.plot, x = "AvgRating", 
              y = "ReleaseDate", queries = F)), ncols = 3))

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多