ggplot2学习(一)

ggplot2基础(1)

ggplot2基础(1)
ggplot2基础(2)——坐标轴
ggplot2基础(3)——注释
ggplot2基础(4)——主题
ggplot2基础(5)——配色与图例

最近在学习用R语言来绘图,ggplot2自然是绕不过去的东东,原来之前学习过一些,但总也记不住(可能也是用得少),每次都要去上网搜索代码,为了解决这个问题吧,我觉得系统的学习是非常有必要的,于是认认真真的开始读

  • 《R语言实战》
  • 《R数据可视化手册》
  • 《R语言数据可视化之美——专业图表绘制指南》

这几本书,这个系列就是我系统学习的笔记,所以都是结合自己的学习需求来记录的,所有的代码都来自于上面这几本书。

1. 基本的绘图函数

ggplot2中常见的绘图函数主要包括

  • geom_col 绘制不需要统计计算的条形图
  • geom_bar 绘制需要统计计算(比如求和)的条形图
  • geom_boxplot 绘制箱线图
  • geom_density 绘制密度图
  • geom_hline 绘制水平线
  • geom_jitter 绘制抖动点
  • geom_line 线图
  • geom_point 散点图
  • geom_rug 地毯图
  • geom_smooth 拟合曲线
  • geom_text 文字注解
  • geom_violin 提琴图
  • geom_vline 绘制垂线

2. 绘图函数的常见参数

  • color 对点、线和填充区域的边界进行着色
  • fill 对填充区域的边界进行着色
  • alpha 颜色的透明度
  • linetype 线条类型
  • size 点的尺寸和线的宽度
  • shape 点的形状,相当于R中自带绘图中的pch
  • position 对象的位置,例如:对于条形图而言,"dodge"表示将条形并排放置,"stacked"表示堆叠放置,"fill"表示堆叠放置且条形图等高(即以百分比显示)
  • binwidth 直方图的宽度
  • notch 方块图是否有缺口
  • sides 地毯图的放置位置
  • width 箱线图的宽度

3. 分组显示

分组显示是指通过形状、颜色、填充、尺寸和线类型等不同形式的视觉特征,在一张图中绘制不同类别(分组)的数据。在ggplot2中一般通过aes()函数来实现,常用的属性(能够较为明显的区别出不同类别的数据)包括但不限于:

  • color
  • fill
  • shape
# install.packages("carData")
# install.packages("car")
library(carData)
library(car)
data(Salaries, package="car")
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank, shape=sex)) +
    geom_point()
image.png

4. 分面

分面是依据数据集中的1个或2个变量(每个变量代表一种分类)将数据划分为多个不同的子集,然后分别将每个子数据集绘制到页面的小图形面板中。常用的分面函数主要有两个:

  • facet_wrap
  • facet_grid 依据两个变量对数据进行划分

4.1 facet_wrap

facet_wrap依据一个变量对数据进行划分,其基本语法为:

facet_wrap(~varname, params...)

其中varname为划分分组的变量名称,params代表其他绘图参数,常用的参数包括:

  • nrow,ncol 子图的行数量和列数量,通常只设置一个即可
  • scales 表示是否固定坐标轴刻度,"fixed"表示所有子图的坐标轴刻度范围是相同的,"free"表示每个子图坐标轴刻度范围不固定,此外也可以设置为"free_x""free_y"
  • shrinks
  • as.table
  • drop 是否显示数据为空的分组,默认为TRUE,即不显示为空的数据分组

4.2 facet_grid

facet_grid依据两个变量对数据进行划分,其基本语法为:

facet_wrap(xvar ~ yvar, params...)

facet_grid中,也可以只设置一个变量,此时则需要将另一个变量设置为.

使用分面绘图后的代码如下所示:

# install.packages("carData")
# install.packages("car")
library(carData)
library(car)
data(Salaries, package="car")
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank)) +
    geom_point() +
    facet_grid(sex~.)
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容