美文网首页生物信息学与算法R生物信息学习
R数据可视化9:棒棒糖图 Lollipop Chart

R数据可视化9:棒棒糖图 Lollipop Chart

作者: jlyq617 | 来源:发表于2019-10-24 11:01 被阅读0次

    棒棒糖图,“望文生义”,就是长得像棒棒糖的图。听起来就很可爱是不是?今天就让我们一起欣赏一下棒棒糖图。

    什么是棒棒糖图

    首先让我们来看几张棒棒糖图。可以发现实际上就是一根柱子加上一个圆,其实类似传统的柱状图。但是它可以给我们更多的信息,因为圆和下面的棒子可以代表同一组数据,也可以代表两组数据。“糖”和“棒子”的颜色也一样,可以表示同一个信息也可以表示不同维度的信息。另外,我们还可以变成双头棒棒糖,在棒子的两端分别展现不同的数据。不喜欢传统的圆形?想要亲手DIY?也没有问题,我们可以把传统的圆形糖换成其他图片(比如漫威),以更加直观的展示信息。我们也可以在圈中标记具体的数值,让读者一目了然。

    from Google图片搜索 from tableau website

    怎么做棒棒糖图

    1)需要什么格式的数据
    我们用R中自带的一个数据——mtcars。该数据来源于1974年Motor Trend杂志,是关于不同车型的设计和性能的数据统计:
    [, 1] mpg Miles/(US) gallon
    [, 2] cyl Number of cylinders
    [, 3] disp Displacement (cu.in.)
    [, 4] hp Gross horsepower
    [, 5] drat Rear axle ratio
    [, 6] wt Weight (1000 lbs)
    [, 7] qsec 1/4 mile time
    [, 8] vs Engine (0 = V-shaped, 1 = straight)
    [, 9] am Transmission (0 = automatic, 1 = manual)
    [,10] gear Number of forward gears
    [,11] carb Number of carburetors

    稍微对数据进行一点处理:

    # Load data
    data("mtcars")
    dfm <- mtcars
    # 转为factor类型的数据
    dfm$cyl <- as.factor(dfm$cyl)
    # 增加一列name
    dfm$name <- rownames(dfm)
    > head(dfm)
                       mpg cyl disp  hp drat    wt  qsec vs am gear carb              name
    Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4         Mazda RX4
    Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4     Mazda RX4 Wag
    Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1        Datsun 710
    Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1    Hornet 4 Drive
    Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 Hornet Sportabout
    Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1           Valiant
    

    2)如何作图
    本次使用ggpubr包进行作图。

    library(ggpubr)
    ggdotchart(dfm, x = "name", y = "mpg",
               color = "cyl",                                # 按照cyl填充颜色
               palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 修改颜色
               sorting = "ascending",                        
               add = "segments",                             # 添加棒子
               ggtheme = theme_pubr(),                        # 改变主题
               xlab=""
    )
    
    
    ggdotchart(dfm, x = "name", y = "mpg",
               color = "cyl",                                # 按照cyl填充颜色
               palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 修改颜色
               sorting = "descending",                      
               add = "segments",                             # 添加棒子
               add.params = list(color = "lightgray", size = 1.5),#改变棒子参数
               rotate = TRUE,                                # 方向转为垂直
               group = "cyl",                                
               dot.size = 6,                                 # 改变点的大小
               label = round(dfm$mpg),                       # 添加label
               font.label = list(color = "white", size = 9, 
                                 vjust = 0.5),               # 设置label参数
               ggtheme = theme_pubr(),                        # 改变主题
               xlab=""
    )
    
    

    往期 R数据可视化 分享

    R数据可视化8: 金字塔图和偏差图
    R数据可视化7: 气泡图 Bubble Plot
    R数据可视化6: 面积图 Area Chart
    R数据可视化5: 热图 Heatmap
    R数据可视化4: PCA和PCoA图
    R数据可视化3: 直方/条形图
    R数据可视化2: 箱形图 Boxplot
    R数据可视化1: 火山图

    相关文章

      网友评论

        本文标题:R数据可视化9:棒棒糖图 Lollipop Chart

        本文链接:https://www.haomeiwen.com/subject/vsbkvctx.html