首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >30分钟学会ggplot2-散点图

30分钟学会ggplot2-散点图

作者头像
黑妹的小屋
发布2020-08-06 11:39:29
发布2020-08-06 11:39:29
1.2K0
举报

太极剑法和ggplot

• 招无定式

• 潜力无穷

• 需要忘记

• 容易学习

ggplot2简介

• 由Hadley Wickham于2005年创建

• 于2012年四月进行了重大更 新,最新版本0.91

• 作者目前的工作是重写代码, 简化语法,方便用户开发和使用

ggplot2的基本概念

• 数据(Data)和映射(Mapping)

• 标度(Scale)

• 几何对象(Geometric) • 统计变换(Statistics)

•坐标系统(Coordinate)

• 图层(Layer) • 分面(Facet)

数据(Data)和映射(Mapping)

将数据中的变量映射到图形属性。映射控制了二者之间的关系。

标度(Scale)

标度负责控制映射后图形属性的显示方式。具体形式上来看是图例和坐标刻度。Scale和Mapping是紧密相关的概念。

几何对象(Geometric)

几何对象代表我们在图中实际看到的图形元素,如点、线、多边形等。

统计变换(statistics)

对原始数据进行某种计算,例如对二元散点图加上一条回归线。

坐标系统(Coordinate)

坐标系统控制坐标轴幵影响所有图形元素,坐标轴可以进行变换以满足不同的需要

图层(Layer)

数据、映射、几何对象、统计变换等构成一个图层。图层可以允许用户一步步的构建图形,方便单独对图层进行修改。

分面(Facet)

条件绘图,将数据按某种方式分组,然后分别绘图。分面就是控制分组绘图的方法和排列形式。

示例数据

> str(mpg)

'data.frame': 234 obs. of 14 variables:

$ manufacturer: Factor w/ 15 levels "audi","chevrolet",..:

$ model: Factor w/ 38 levels "4runner 4wd",..:

$displ :num 1.81.8222.82.83.11.81.82...

$ year: int 1999 1999 2008 2008 1999 1999 2008 1999

$ cyl: int 4 4 4 4 6 6 6 4 4 4 ...

$ trans: Factor w/ 10 levels "auto(av)","auto(l3)",..:

$ drv: Factor w/ 3 levels "4","f","r":

$ cty: int 18 21 20 21 16 18 18 18 16 20 ...

$ hwy: int 29 29 31 30 26 26 27 26 25 28 ...

$ fl: Factor w/ 5 levels "c" "d","e","p",...

$ class: Factor w/ 7 levels"2seater","compact", ...

例如:

> library(ggplot2)

> p <- ggplot(data=mpg, mapping=aes(x=cty, y=hwy))

> p + geom_point()

将颜色映射到颜色属性

> p <- ggplot(mpg,aes(x=cty, y=hwy, colour=factor(year)))

> p + geom_point()

增加平滑曲线:

> p + geom_point() + stat_smooth()

>p <- ggplot(mpg, aes(x=cty,y=hwy))

p+geom_point(aes(colour=ftor(year)))+stat_smooth()

两种等价的绘图方式

第一种:

> p <- ggplot(mpg, aes(x=cty,y=hwy))

p+geom_point(aes(colour=factor(year)))+stat_smooth()

第二种:

> d <- ggplot() +geom_point(data=mpg, aes(x=cty, y=hwy, colour=factor(year)))+

stat_smooth(data=mpg, aes(x=cty, y=hwy))

> print(d)

用标度来修改颜色取值

> p + geom_point(aes(colour=factor(year)))+ stat_smooth()+scale_color_man-

al(values =c('blue','red'))

将排量映射到散点大小

> p + geom_point(aes(colour=factor(year),size=displ))+ stat_smooth()+scale_co

or_manual(values =c('blue2','red4'))

>p + geom_point(aes(colour=factor(year),size=displ), alpha=0.5,position = "jitter") + stat_smooth()+scale_color_manual(values =c('blue2','red4'))+ scale_size_continuous(range = c(4, 10))

用坐标控制图形显示的范围

利用facet分别显示不同年份的数据

>p + geom_point(aes(colour=class, size=displ), alpha=0.5, position = "jitter")+ stat_smooth()+scale_size_continuous(range = c(4, 10))+ facet_wrap(~ year, ncol=1)

增加图名幵精细修改图例

> p <- ggplot(mpg, aes(x=cty, y=hwy))

> p+geom_point(aes(colour=class,size=displ),alpha=0.5,position = "jitter")+ stat_smooth()+ scale_size_continuous(range = c(4, 10))+ facet_wrap(~ year,ncol=1)+

opts(title='汽车油耗与型号')+ labs(y='每加仑高速公路行驶距离',

x='每加仑城市公路行驶距离')+ guides(size=guide_legend(title='排量'),colour = guide_legend(title='车型', override.aes=list(size=5)))

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟学数据分析之R语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档