美文网首页
【R画图学习18.2】小提琴图2---云雨图

【R画图学习18.2】小提琴图2---云雨图

作者: jjjscuedu | 来源:发表于2022-11-19 12:55 被阅读0次

    今天继续练习小提琴图的一个变种,云雨图。云雨图是半小提琴图(“云”)与散点图(“雨”)的结合,在小提琴图的基础上增加了原始数据点的展示,既美观又包含更多的数据信息。

    我们今天就来尝试学习测试云雨图的画法。

    绘制云雨图,需要用到gghalves的两个函数,geom_half_violin()和geom_half_dotplot(),分别绘制“云”和“雨”。

    用自带的iris数据集。

    ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+

    geom_violin(position = position_dodge(width = 1), scale = 'width')

    如果用geom_violin函数,就是一个普通的小提琴图。

    ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+

    geom_half_violin()

    如果用geom_half_violin函数,就是绘制小提琴图的一半。

    ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+

    geom_half_violin(aes(fill = Species),

                      position = position_nudge(x = .15, y = 0), # 偏移中心的距离;   

                      adjust=1.5,

                      trim=FALSE, # 是否修缮提琴尾部

                      colour=NA, # 描边颜色

                      side = 'r')   #是放左半边,还是右半边,默认是左

    然后我们加入下面的点。通过geom_half_dotplot()函数实现。

    ggplot(iris , aes(x = Species, y = Sepal.Length, fill = Species))+

    geom_half_violin(aes(fill = Species),

                      #position = position_nudge(x = .15, y = 0), # 偏移中心的距离;   

                      adjust=1.5,

                      trim=FALSE, # 是否修缮提琴尾部

                      colour=NA, # 描边颜色

                      side = 'r') +

    geom_half_dotplot(aes(fill = Species),dotsize=0.4,

                      stackdir="down", #改变方向

                    # position=position_nudge(x = .1, y = 0), # 偏移中心的距离;

                      binwidth = 0.15, # 相当于调整点的大小;

                      colour=NA

                      )+

    coord_flip()   #调整X轴和Y轴方向

    我们再添加个简单的分组,看下是什么效果。

    iris$time <- factor(sample(1:3, nrow(iris), replace = T), levels = c(1,2,3))

    加入time的分组信息。

    ggplot(iris , aes(x = time, y = Sepal.Length, fill = Species))+

    geom_half_violin(aes(fill = Species),

                    position = position_nudge(x = .15, y = 0), # 偏移中心的距离;   

                    adjust=1.5,

                    trim=FALSE, # 是否修缮提琴尾部

                    colour=NA, # 描边颜色

                    side = 'r') +

    geom_half_dotplot(aes(fill = Species),dotsize=0.4,

                      stackdir="down", #改变方向

                      position=position_nudge(x = -0.15, y = 0), # 偏移中心的距离;

                      binwidth = 0.15, # 相当于调整点的大小;

                      colour=NA

                      )+

    #加入box信息

    geom_boxplot(aes(fill = Species),

                  width=0.15,  # 调整箱线图宽度;

                  alpha=0.5,

                  position = position_dodge(0.2), # 调整箱线图之间的间距;

                  outlier.shape = NA # 不显示离群值散点

                  )+

    coord_flip()+

    theme_bw()

    相关文章

      网友评论

          本文标题:【R画图学习18.2】小提琴图2---云雨图

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