R-可视化(一):条形图

library(ggplot2)
library(ggpubr)

1.简单条形图

df <- data.frame(dose=c("D0.5", "D1", "D2"),
                 len=c(4.2, 10, 29.5))
  • 条形图基本格式
ggbarplot(df,x = 'dose',y = 'len',
          color = 'black',
          fill = 'gray')

在这里插入图片描述

  • 条形图的旋转
ggbarplot(df,x = 'dose',y = 'len',
          color = 'black',
          fill = 'gray',
          rotate = T)

在这里插入图片描述

  • 添加标签
ggbarplot(df,x = 'dose',y = 'len',
          color = 'black',
          fill = 'gray',
          label = T) 

在这里插入图片描述

  • 改变条形图轮廓、填充色,按填充色生成图例
ggbarplot(df, x = "dose", y = "len",
          color = "dose", 
          fill = "dose", 
          palette = "jco")

在这里插入图片描述

2.簇状条形图

df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
                  dose=rep(c("D0.5", "D1", "D2"),2),
                  len=c(6.8, 15, 33, 4.2, 10, 29.5))
  • 基本图形
ggbarplot(df2, x = "dose", y = "len",
          fill = "supp",
          color = "supp", 
          palette = c("gray", "black"),
          position = position_dodge(0.9))

在这里插入图片描述

  • 改变条形图轮廓和填充色,按填充色生成图例,添加标签
ggbarplot(df2, x = "dose", y = "len",
          color = "supp",                    # 分组调整轮廓颜色
          fill = "supp",                     # 分组调整填充颜色
          palette = 'jco',                   # jco杂志配色
          position = position_dodge(0.9),    # 调整条形间距
          label = TRUE,                      # 添加标签
          lab.col = "black",lab.pos = "out") # 修改标签参数,颜色、位置

在这里插入图片描述

3.堆积条形图

  • 基本图形
ggbarplot(df2, x = "dose", y = "len",
          color = "supp",                    # 分组调整轮廓颜色                     
          fill = "supp",                     # 分组调整填充颜色
          palette = 'jco',                   # jco杂志配色
          label = TRUE,                      # 添加标签               
          lab.col = "white",lab.pos = "in")  # 修改标签参数,颜色、位置

在这里插入图片描述

  • 百分比堆积条形图
library(gcookbook)
library(plyr)
df3 = ddply(df2,'dose',                            # 按照'dose'变量分组
            transform,                             #将每组条形对应的数据转化为100%格式
            percent = round(len/sum(len) * 100))   # 转换公式,将转换后的数据添加到新的1ggbarplot(df3, x = "dose", y = "percent",
          color = "supp",                    # 分组调整轮廓颜色
          fill = "supp",                     # 分组调整填充颜色
          palette = 'jco',                   # jco杂志配色
          label = TRUE,                      # 添加标签
          lab.col = "white",lab.pos = "in")  # 修改标签参数,颜色、位置

在这里插入图片描述

4.有序条形图

  • 基本图形
dfm = mtcars
dfm$cyl = as.factor(dfm$cyl)
dfm$name = rownames(dfm)
ggbarplot(dfm, x = "name", y = "mpg",
          fill = "cyl",               # 分组调整填充颜色      
          color = "white",            # 轮廓颜色为白色
          palette = "jco",            # jco杂志配色
          sort.val = "asc",           # 按降序对值进行排序
          sort.by.groups = F,         # 不在组内进行排序
          x.text.angle = 90 ,         # 旋转垂直x轴文本
)

在这里插入图片描述

  • 组内排序
ggbarplot(dfm, x = "name", y = "mpg",
          fill = "cyl",               # 分组调整填充颜色 
          color = "white",            # 轮廓颜色为白色 
          palette = "jco",            # jco杂志配色
          sort.val = "asc",           # 按升序对值进行排序
          sort.by.groups = T,         # 组内进行排序
          x.text.angle = 90           # 旋转垂直x轴文本
)

在这里插入图片描述

  • 偏差图-标准化数据
dfm$mpg_z <- scale(dfm$mpg)
dfm$mpg_grp <- factor(ifelse(dfm$mpg_z < 0, "low", "high"), 
                      levels = c("low", "high"))
ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",               # 分组调整填充颜色 
          color = "white",                # 轮廓颜色为白色 
          palette = "jco",                # jco杂志配色
          sort.val = "asc",               # 按升序对值进行排序
          sort.by.groups = F,             # 组内不排序
          x.text.angle = 90,              # 旋转垂直x轴文本
          ylab = "MPG z-score",           # y轴标签
          xlab = F,                       # 去除x轴标签
          legend.title = "MPG Group"      # 添加图例标签
)

在这里插入图片描述

  • 旋转坐标轴
ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",               # 分组调整填充颜色         
          color = "white",                # 轮廓颜色为白色 
          palette = "jco",                # jco杂志配色
          sort.val = "desc",              # 按降序对值进行排序
          sort.by.groups = F,             # 组内不排序
          x.text.angle = 90,              # 旋转垂直x轴文本
          ylab = "MPG z-score",           # 添加y轴标签
          legend.title = "MPG Group",     # 添加图例标签
          rotate = T,                     # 旋转坐标轴
          ggtheme = theme_minimal(),      # ggplot2主题
) + theme(axis.text.x = element_text(angle = 0, hjust = 0.5, vjust = 1)) 

在这里插入图片描述

5.棒棒糖图

  • 当有大量值可视化时,棒棒糖图表是条形图的替代方案
  • 基本图形
ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # 按组着色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定义颜色
           sorting = "ascending",                        # 升序
           add = "segments",                             # 将y = 0的线段添加到点
           add.params = list(color = "cyl", size = 1),   # 调整线段参数,颜色、大小
           ggtheme = theme_pubr()                         
)

在这里插入图片描述

  • 棒棒糖图
ggdotchart(dfm, x = "name", y = "mpg", 
           color = "cyl",                                # 按组着色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定义颜色
           sorting = "descending",                       # 降序
           add = "segments",                             # 将y = 0的线段添加到点
           add.params = list(color = "cyl", size = 1),   # 调整线段参数,颜色、大小
           rotate = T,                                   # 旋转坐标轴
           group = "cyl",                                # 组内排序
           dot.size = 6,                                 # 点的大小
           label = round(dfm$mpg),                       # 将mpg值添加为点标签
           font.label = list(color = "white",            # 调整标签参数,颜色、大小、位置
                             size = 9, 
                             vjust = 0.5),                
           ggtheme = theme_pubr()                        # ggplot2 主题
) 

在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值