可视化学习笔记(三):ggplot2:散点图


1、简单散点图

使用geom_point()函数即可绘制,并且在映射中可以使用以下映射参数:

  • shape:指定形状
  • colour:填充(需要注意的是,fill对point可能不起作用
  • size:修改大小

2、样式修改

2.1 颜色修改

颜色的手动修改使用以下函数:

scale_colour_manual()
scale_colour_brewer()

2.2 形状修改

  • 使用scale_shape_manual()函数可以对形状进行重新修改
  • 使用scale_size_area()函数可以修改点大小(面积)
  • 需要注意的是,含有映射shapesize时最好不要用来比较点

3、图形重叠情况

3.1设定透明度

使用alpha=#参数来设定透明度,降低图形重叠情况

3.2将数据分箱(bin),并用矩形/六边形表示

  • stat_bin2d()表示矩形分箱
  • stat_binhex()表示六边形分箱

使用以上两个函数时,需要对颜色进行调整,因此用到scale_fill_gradient()函数

scale_fill_gradient(low='', high='', breaks=, limits=)
  • lowhigh是用于指定最小和最大色阶
  • breaks是用于将填充颜色进行分割(cut)
  • limits是限定色阶的范围

3.3添加随机扰动点

当散点图中其中一个数据轴或两个数据轴都对应于离散型变量时,也会出现图形重叠的情况,因此可以给数据添加随机扰动点

geom_jitter()

4、添加回归拟合线

4.1拟合直线

使用geom_smooth()函数可以添加回归拟合直线

  • se参数控制置信区间,当se=F时,表示不绘制置信区间;默认绘制
  • level参数控制置信水平
  • linetypecoloursize三个参数用于直线进行样式调整
  • geom_smooth()函数默认使用loess方法(局部加权多项式回归)
  • 如果提前映射了colourshape参数,回归会出现分组回归的情况

4.2logit回归曲线

使用stat_smooth()可以设定回归参数

  • method用于指定回归方法
  • method.args=list()用于传递回归方法的其他参数给stat_smooth()
  • 如果想基于数据进行拟合外推,需要添加fullrang=T参数

4.3对模型添加拟合直线

可以在建立模型后使用predict()函数预测,然后通过geom_line函数来添加模型的拟合线:

#建立模型
model <- lm(heightIn~ ageYear + I(ageYear^2), data=heightweight)
model
summary(model)

#设定预测数据
xmin <- min(heightweight$ageYear)
xmax <- max(heightweight$ageYear)
predicted <- data.frame(ageYear=seq(xmin, xmax, length.out = 100))

predicted$heightIn <- predict(model, predicted);predicted

#绘图
sp <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) +
  geom_point(colour="grey40")
sp + geom_line(data=predicted, size=1)

5、添加文本注释

使用annotate()函数来对图形进行注释添加

annotate(geom, x=, y=, label="", parse=F)
  • geom是指定添加注释类型,如geom="text"表示添加文本注释
  • xy是用来指定注释的坐标
  • label用来添加注释内容
  • parse默认不调用数学表达式语法,当parse=T时会以数学表达式的形式表现注释

6、添加标签

  • 可以使用annotate()函数来手动添加个别点的标签
  • 如果需要自动添加标签,则使用geom_text()函数
geom_text(aes(label=), size=#, vjust=#, hjust=#)
  • 直接将变量映射到label,然后通过size来调整标签大小避免重合
  • 使用vjusthjust参数用于对标签位置进行调整;但如果需要自动做出调整,则在aes映射中对y-axis或x-axis加减一个单位

7、绘制气泡图

使用geom_point()函数和scale_size_area()函数组合即可绘制出气泡图;但实际上气泡图还是散点图

library(gcookbook) #加载数据

cdat <- subset(countries, Year==2009 &
     Name %in% c("Canada", "Ireland", "United Kingdom", "United States", "New Zealand", "Iceland", "Japan", "Luxembourg", "Netherlands", "Switzerland"))

p <- ggplot(cdat, aes(x=healthexp, y=infmortality, size=GDP)) +
  geom_point(shape=21, colour="black", fill="cornsilk")
  
# 将GDP映射给半径(scale_size_continuous的默认值)
p
# 将GDP映射给面积,得到略大的圆圈
p + scale_size_area(max_size=15)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容

  • 简介 文章较长,点击直达我的博客,浏览效果更好。本文内容基本是来源于STHDA,这是一份十分详细的ggplot2使...
    taoyan阅读 50,799评论 7 159
  • 1、简单折线图 折线图的x既可以对应离散性变量,也可以对应连续型变量 当x对应因子变量时,必须使用group=1映...
    100gle阅读 9,362评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 1、费雪及其名著《利息理论》 美国经济学家欧文·费雪(Irving Fisher,1867—1947),在1930...
    随思录阅读 384评论 0 0
  • 杵築,一个很陌生的名字,这是一座九州大分县的小城,从别府前往这里,火车仅需20分钟,九州著名的音速“SONIC”列...
    jcmegodb阅读 1,241评论 0 2