可视化学习笔记(一):ggplot2:条形图


安装、加载包

#if (!require(ggplot)) (install.packages("ggplot2"))
#if (!require(gcookbook)) (install.packages("gcookbook"))
library(ggplot2) 
library(gcookbook) #使用数据集

1、基本语法

geom_bar(data, aes=(x, y), stat= )
  • 默认stat为'bin'(frequency)
  • 如果需要改变y-axis,使用stat='identity'参数即可对y参数映射
  • 需要注意x的类型是离散还是连续

1.1堆积条形图/分组条形图

  • 当在aes映射中使用fill参数填充分类变量,默认出现堆积条形图
ggplot(diamonds, aes(x= , y= , fill= ) +
    geom_bar(stat='identity')
  • 使用position='dodge'选项则修改为分组条形图
ggplot(diamonds, aes(x= , y= , fill= ) +
    geom_bar(stat='identity', position='dodge')

1.2频数条形图

  • 如果想使用频数条形图,则只需要映射x参数即可
  • 但对于x参数需要注意:
    1. x=discrete时,绘制条形图
    2. x=continuous时,绘制直方图

1.3百分比堆积条形图

  • 需要先对每组条形对应的数据进行百分比转化
  • 然后再通过填充按堆积条形图步骤操作即可

2、调色

2.1颜色填充

颜色的填充主要使用color和fill映射参数:

  • color主要是用于给外部涂色
  • fill主要是用于内部填充颜色

对于分类变量与连续变量,着色的效果会有所不同

2.2颜色指定

如果对于填充的颜色不满意,可以使用:

scale_fill_brewer()函数
scale_fill_manual()函数

scale_fill_brewer(..., guide=T)
scale_fill_manual(values=c(...), guide=T) #通过values来指定颜色
  • 填充图例可以使用guide=F参数来删除(方法不唯一
  • 并且需要映射时则要在aes参数内进行,重新设定则不需要

3、宽度调整

  • geom_bar中使用width=#来指定条形宽度(max=1)
  • 对于分组条形图则需要通过position参数,并且通过position_dodge(#)选项来完成:
geom_bar(..., position=position_dodge(#)

4、标签与图例

4.1标签添加

添加标签使用geom_text()函数:

geom_text(aes(x=, y=, label= ), vjust/hjust=#)
  • x和y参数如果已经在前面图层进行映射,则需要指定label参数即可
  • 并且通过vjust和hjust来调整标签的位置:
    • (vertical)vjust:调整上下位置
    • (horizontal)hjust:调整水平位置
  • 手动调整标签位置会使得出现遮挡标签或标签溢出的情况,需要手动设定y轴的范围
    • 通常的做法是让y轴加上一个参数,使坐标轴自动扩展

4.2图例

对于图例进行调整可以使用guides函数:

guides(....)

更多细节可以参考??ggplot2::guides

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 文章较长,点击直达我的博客,浏览效果更好。本文内容基本是来源于STHDA,这是一份十分详细的ggplot2使...
    taoyan阅读 51,432评论 7 159
  • Matplotlib 入门教程 来源:Introduction to Matplotlib and basic l...
    布客飞龙阅读 31,893评论 5 162
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 在销售信中添加图片,剪贴画,照片以及其他符合标题的图表。 标题是吸引读者注意力,让他们想要继续阅读的关键,你必须以...
    da226b5bfd62阅读 548评论 0 0
  • 一路(16)走来 奕聪陪伴左右 ①经历中考 身心俱疲 日日夜夜的奋战 只为踏入考场的一瞬间 平复紧张的情绪 认真对...
    LJWEN阅读 641评论 0 0