前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言绘图之ggplot2

R语言绘图之ggplot2

作者头像
一粒沙
发布2019-07-31 14:45:52
4.2K0
发布2019-07-31 14:45:52
举报
文章被收录于专栏:R语言交流中心
当我们看到很多优美的绘图时,你是否会有据为己有的冲动?我反正是有的。那么今天我们就为大家介绍一下目前在R语言中流行的绘图包ggplot2。

1. ggplot2的安装:install.packages("ggplot2")。

2. ggplot2的绘图原理: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离,并按图层作图。

ggplot的绘图有以下几个特点:第一,有明确的起始(以ggplot函数开始)与终止(一句语句一幅图);其二,图层之间的叠加是靠“+”号实现的,越后面其图层越高。

ggplot图的元素可以主要可以概括如下:最大的是plot(指整张图,包括background和title),其次是axis(包括stick,text,title和stick)、legend(包括backgroud、text、title)、facet这是第二层次,其中facet可以分为外部strip部分(包括backgroud和text)和内部panel部分(包括backgroud、boder和网格线grid,其中粗的叫grid.major,细的叫grid.minor)。

3. ggplot2的函数介绍:

ggplot2里的所有函数可以分为以下几类:

用于运算(我们在此不讲,如fortify_,mean_等)

初始化、展示绘图等命令(ggplot,plot,print等)

按变量组图(facet_等)

真正的绘图命令(stat_,geom_,annotate),这三类就是实现一个函数一个图层的核心函数。

微调图型:严格意义上说,这一类函数不是再实现图层,而是在做局部调整。

aes : 同样适用于修改geom_XXX() aes参数控制了对哪些变量进行图形映射,以及映射方式

图形属性(aes)横纵坐标、点的大小、颜色,填充色等

几何对象函数

描述

geom_abline

线图,由斜率和截距指定

geom_area

面积图(即连续的条形图)

geom_bar

条形图

geom_bin2d

二维封箱的热图

geom_blank

空的几何对象,什么也不画

geom_boxplot

箱线图

geom_contour

等高线图

geom_crossbar

crossbar图(类似于箱线图,但没有触须和极值点)

geom_density

密度图

geom_density2d

二维密度图

geom_errorbar

误差线(通常添加到其他图形上,比如柱状图、点图、线图等)

geom_errorbarh

水平误差线

geom_freqpoly

频率多边形(类似于直方图)

geom_hex

六边形图(通常用于六边形封箱)

geom_histogram

直方图

geom_hline

水平线

geom_jitter

点、自动添加了扰动

geom_line

线

geom_linerange

区间,用竖直线来表示

geom_path

几何路径,由一组点按顺序连接

geom_point

geom_pointrange

一条垂直线,线的中间有一个点(与Crossbar图和箱线图相关,可以用来表示线的范围)

geom_polygon

多边形

geom_quantile

一组分位数线(来自分位数回归)

geom_rect

二维的长方形

geom_ribbon

彩虹图(在连续的x值上表示y的范围,例如Tufte著名的拿破仑远征图)

geom_rug

触须

geom_segment

线段

geom_smooth

平滑的条件均值

geom_step

阶梯图

geom_text

文本

geom_tile

瓦片(即一个个的小长方形或多边形)

geom_vline

竖直线

统计变换函数

描述

stat_abline

添加线条,用斜率和截距表示

stat_bin

分割数据,然后绘制直方图

stat_bin2d

二维密度图,用矩阵表示

stat_binhex

二维密度图,用六边形表示

stat_boxplot

绘制带触须的箱线图

stat_contour

绘制三维数据的等高线图

stat_density

绘制密度图

stat_density2d

绘制二维密度图

stat_function

添加函数曲线

stat_hline

添加水平线

stat_identity

绘制原始数据,不进行统计变换

stat_qq

绘制Q-Q图

stat_quantile

连续的分位线

stat_smooth

添加平滑曲线

stat_spoke

绘制有方向的数据点(由x和y指定位置,angle指定角度)

stat_sum

绘制不重复的取值之和(通常用在三点图上)

stat_summary

绘制汇总数据

stat_unique

绘制不同的数值,去掉重复的数值

stat_vline

绘制竖直线

标度函数

描述

scale_alpha

alpha通道值(灰度)

scale_brewer

调色板,来自colorbrewer.org网站展示的颜色标度

scale_continuous

连续标度

scale_data

日期

scale_datetime

日期和时间

scale_discrete

离散值

scale_gradient

两种颜色构建的渐变色

scale_gradient2

3中颜色构建的渐变色

scale_gradientn

n种颜色构建的渐变色

scale_grey

灰度颜色

scale_hue

均匀色调

scale_identity

直接使用指定的取值,不进行标度转换

scale_linetype

用线条模式来展示不同

scale_manual

手动指定离散标度

scale_shape

用不同的形状来展示不同的数值

scale_size

用不同大小的对象来展示不同的数值

坐标函数

描述

coord_cartesian

笛卡儿坐标

coord_equal

等尺度坐标(斜率为1)

coord_flip

翻转笛卡儿坐标

coord_map

地图投影

coord_polar

极坐标投影

coord_trans

变换笛卡儿坐标

分面函数

描述

facet_grid

将分面放置在二维网格中

facet_wrap

将一维的分面按二维排列

定位函数

描述

position_dodge

并列

position_fill

填充

position_identity

不对位置进行处理

position_jitter

扰动处理

position_stack

堆叠处理

4. ggplot2的应用语法

ggplot(data =, aes(x = , y = )) +

geom_XXX(...)+ ... + stat_XXX(...) + ... +

annotate(...)+ ... + labs(...) +

scale_XXX(...)+ coord_XXX(...) + guides(...) + theme(...) +

facet_XXX(...)

geom :表示几何对象,它是ggplot中重要的图层控制对象,因为它负责图形渲染的类型。

几何对象(geom_)上面指定的图形属性需要呈现在一定的几何对象上才能被我们看到,这些承载图形属性的对象可能是点,可能是线,可能是bar

stat :统计变换比如求均值,求方差等,当我们需要展示出某个变量的某种统计特征的时候,需要用到统计变换

annotate:添加注释 #由于设置的文本会覆盖原来的图中对应的位置,可以改变文本的透明度或者颜色例:annotate(geom='text')会向图形添加一个单独的文本对象 annotate("text",x=23,y=200,parse=T,label ="x[1]==x[2]")

labs : labs(x= "这是 X 轴", y = "这是 Y 轴", title = "这是标题") ## 修改文字

scale_: 标度是一种函数,它控制了数学空间到图形元素空间的映射。一组连续数据可以映射到X轴坐标,也可以映射到一组连续的渐变色彩。一组分类数据可以映射成为不同的形状,也可以映射成为不同的大小,这就是与aes内的各种美学(shape、color、fill、alpha)调整有关的函数。

coord_:调整坐标,控制了图形的坐标轴并影响所有图形元素. 调整坐标 coord_flip()来翻转坐标轴。使用xlim()和ylim()来设置连续型坐标轴的最小值和最大值 coord_cartesian(xlim=c(0,100),ylim=c(0,100))

guides:调整所有的text。

theme:调整不与数据有关的图的元素的函数。theme函数采用了四个简单地函数来调整所有的主题特征:element_text调整字体,element_line调整主题内的所有线,element_rect调整所有的块,element_blank清空。theme(panel.grid =element_blank()) ## 删去网格线

facet :控制分组绘图的方法和排列形式。

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

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