有新意:會下雨的小提琴圖

image

一咨察、介紹

所謂的云雨圖论熙,基本形狀由云朵和雨點組成,上面云朵是數(shù)據(jù)密度圖摄狱,傘就是平鋪的箱線圖脓诡,雨就是下面的數(shù)據(jù)點。百聞不如一見媒役,快隨我一起來瞅瞅如何繪制吧祝谚。

二、R 語言實現(xiàn)

2.1 準備數(shù)據(jù)

準備下圖所示數(shù)據(jù)酣衷,數(shù)據(jù)文件第一列對應分類名稱交惯,其它列為對應的數(shù)據(jù)。

圖1 數(shù)據(jù)文件

2.2 命令實現(xiàn)

# 自定義函數(shù)

"%||%" <- function(a, b) {
  if (!is.null(a)) a else b
}

geom_flat_violin <- function(mapping = NULL, data = NULL, stat = "ydensity",
                        position = "dodge", trim = TRUE, scale = "area",
                        show.legend = NA, inherit.aes = TRUE, ...) {
  layer(
    data = data,
    mapping = mapping,
    stat = stat,
    geom = GeomFlatViolin,
    position = position,
    show.legend = show.legend,
    inherit.aes = inherit.aes,
    params = list(
      trim = trim,
      scale = scale,
      ...
    )
  )
}

GeomFlatViolin <-
  ggproto("GeomFlatViolin", Geom,
          setup_data = function(data, params) {
            data$width <- data$width %||%
              params$width %||% (resolution(data$x, FALSE) * 0.9)
            
            # ymin, ymax, xmin, and xmax define the bounding rectangle for each group
            data %>%
              group_by(group) %>%
              mutate(ymin = min(y),
                     ymax = max(y),
                     xmin = x,
                     xmax = x + width / 2)
            
          },
          
          draw_group = function(data, panel_scales, coord) {
            # Find the points for the line to go all the way around
            data <- transform(data, xminv = x,
                              xmaxv = x + violinwidth * (xmax - x))
            
            # Make sure it's sorted properly to draw the outline
            newdata <- rbind(plyr::arrange(transform(data, x = xminv), y),
                             plyr::arrange(transform(data, x = xmaxv), -y))
            
            # Close the polygon: set first and last point the same
            # Needed for coord_polar and such
            newdata <- rbind(newdata, newdata[1,])
            
            ggplot2:::ggname("geom_flat_violin", GeomPolygon$draw_panel(newdata, panel_scales, coord))
          },
          
          draw_key = draw_key_polygon,
          
          default_aes = aes(weight = 1, colour = "grey20", fill = "white", size = 0.5,
                            alpha = NA, linetype = "solid"),
          
          required_aes = c("x", "y")
)


繪制基礎圖

p0 <- ggplot(data = mat, aes(x = variable, y = value, fill = variable)) +
                geom_flat_violin(position = position_nudge(x = 2, y = 0.8), alpha = 0.6) 

添加散點圖

p1 <- p0 + geom_jitter(aes(color=variable), 
                    width=10,
                    size=2,
                    shape=1,
                    alpha = 0.6,
                    show.legend=NA) 
                    
圖2 云雨圖一

添加箱線圖

    p2 <- p0 + geom_boxplot(
                    position=position_nudge(x=0.2),
                    outlier.shape = FALSE, 
                    alpha = 0.4, 
                    width = 20, 
                    colour = "#000000")
圖3 云雨圖二

2.3 平臺實現(xiàn)

用“派森諾基因云” 的 【云雨圖】,可以很方便的作上述圖席爽,并且提供了很多參數(shù)可以在線自由調整樣式意荤。

用上述示例數(shù)據(jù),上傳后提交繪圖即可只锻。

圖4 提交數(shù)據(jù)繪圖

參數(shù)調整

  1. 在【圖表設置】里面玖像,可以調整圖表類型為云雨箱線圖、云箱線圖齐饮、云雨圖捐寥。
圖5 云雨箱線圖示例
圖6 云箱線圖示例
圖7 云雨圖示例
  1. 同時還可調整云雨圖的圖表方向,云朵的距離祖驱,云朵的顏色及透明度等握恳,更多效果歡迎登錄派森諾基因云進行體驗。
圖8 云雨圖示例

每周掌握一個可視化工具捺僻,希望以后手里有很多把錘子乡洼。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市陵像,隨后出現(xiàn)的幾起案子就珠,更是在濱河造成了極大的恐慌,老刑警劉巖醒颖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妻怎,死亡現(xiàn)場離奇詭異,居然都是意外死亡泞歉,警方通過查閱死者的電腦和手機逼侦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腰耙,“玉大人榛丢,你說我怎么就攤上這事⊥ε樱” “怎么了晰赞?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長选侨。 經常有香客問我掖鱼,道長,這世上最難降的妖魔是什么援制? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任戏挡,我火速辦了婚禮,結果婚禮上晨仑,老公的妹妹穿的比我還像新娘褐墅。我一直安慰自己拆檬,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布妥凳。 她就那樣靜靜地躺著竟贯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逝钥。 梳的紋絲不亂的頭發(fā)上澄耍,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音晌缘,去河邊找鬼。 笑死痢站,一個胖子當著我的面吹牛磷箕,可吹牛的內容都是我干的。 我是一名探鬼主播阵难,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼岳枷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呜叫?” 一聲冷哼從身側響起空繁,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎朱庆,沒想到半個月后盛泡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡娱颊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年傲诵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱硕。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拴竹,死狀恐怖,靈堂內的尸體忽然破棺而出剧罩,到底是詐尸還是另有隱情栓拜,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布惠昔,位于F島的核電站幕与,受9級特大地震影響,放射性物質發(fā)生泄漏舰罚。R本人自食惡果不足惜纽门,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望营罢。 院中可真熱鬧赏陵,春花似錦饼齿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吃型,卻和暖如春证鸥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勤晚。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工枉层, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赐写。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓鸟蜡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挺邀。 傳聞我的和親對象是個殘疾皇子揉忘,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容