R语言ggplot2条形图/柱状图geom 您所在的位置:网站首页 怎么填充柱状图颜色 R语言ggplot2条形图/柱状图geom

R语言ggplot2条形图/柱状图geom

2023-11-14 06:42| 来源: 网络整理| 查看: 265

目录 1. 最基本条形图2. 改变填充颜色与柱子宽度3. 改变横纵坐标轴名称、字体和字号4. 旋转坐标轴文字,或挪动其位置5. 调整图片背景与页边距6. 相关链接

1. 最基本条形图

假设名为dat的数据框(data.frame)包含两列,第一列是name,第二列是value。我们希望绘制一个横坐标为name,纵坐标为value的条形图

library(ggplot2) ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity')

在这里插入图片描述

下面对此图进行改进。

2. 改变填充颜色与柱子宽度

改变填充色与柱子宽度分别可以通过改变geom_bar函数里的参数fill与width实现。如果我们给fill设定某一颜色,则所有柱子都会变为该颜色。

ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity', fill = 'pink', # 改变填充颜色 width = 0.9) # 改变柱子宽度

在这里插入图片描述

如果我们希望根据纵坐标值的正负修改填充色,也可以应用如下方法:

ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity', fill = ifelse(dat$value>0,'gold','gray40'), # 根据y值的正负设置颜色 width = 0.9)

在这里插入图片描述

3. 改变横纵坐标轴名称、字体和字号

1.对于横纵坐标轴名称,可以使用labs函数。 2.对于横纵坐标轴名称与文字的字体,可以使用theme函数中的如下参数:

axis.title:横纵坐标标题axis.text:横纵坐标文字

如果我们只想设置横坐标的标题(不设置纵坐标标题),可以设置axis.title.x参数。以此类推,也可以设置某一坐标轴的文字等等。相反地,如果想统一设置所有文本的格式,可以设置text参数。 对于如上提到的每一个参数,我们需要调用函数element_text,并改变它的size、face等参数。 比如,在上图基础上做如下改动:

ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity', fill = ifelse(dat$value>0,'gold','gray40'), # 根据y值的正负设置颜色 width = 0.9) + # 横纵坐标轴名称 labs(x = 'Name', y = 'Value')+ theme(axis.title = element_text(size=15,face = "bold"), # 调整横纵坐标轴标题字号并设置为粗体 axis.text.x = element_text(size=13)) # 调整横坐标文字字号

在这里插入图片描述

4. 旋转坐标轴文字,或挪动其位置

如果横坐标文字太长,我们可以将其旋转一定角度,也可以调整其位置。方法为设置上文提到的element_text函数中的angle和hjust参数。例如:

ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity', fill = ifelse(dat$value>0,'gold','gray40'), # 根据y值的正负设置颜色 width = 0.9) + # 横纵坐标轴名称 labs(x = 'Name', y = 'Value')+ theme(axis.title = element_text(size=12,face = "bold"), axis.text.x = element_text(angle=90, # 横坐标文字旋转九十度 hjust = 1, # 调整横坐标文字位置 size=15)) # 调整横坐标文字字号

在这里插入图片描述

5. 调整图片背景与页边距

最后为了美观起见,可以删除ggplot2自带的灰色背景与边框,也可以设置页边距如下。

ggplot(data = dat,aes(x = name, y = value)) + geom_bar(stat = 'identity', fill = ifelse(dat$value>0,'gold','gray40'), # 根据y值的正负设置颜色 width = 0.9) + # 横纵坐标轴名称 labs(x = 'Name', y = 'Value')+ theme(panel.grid.major =element_blank(), # 去除边框 panel.grid.minor = element_blank(), panel.background = element_blank(), axis.title = element_text(size=12,face = "bold"), axis.text.x = element_text(angle=90, # 横坐标文字旋转九十度 hjust = 1, # 调整横坐标文字位置 size=15), # 调整横坐标文字字号 plot.margin=unit(rep(3,4),'lines')) # 设置图片边距

在这里插入图片描述

6. 相关链接 删除ggplot2背景与网格线的简便做法;设置中英文格式;分组条形图以及其他颜色设置方法

希望大家可以用ggplot2画出自己喜欢的图!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有