千家信息网

R语言的ggplot2知识点有哪些

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"R语言的ggplot2知识点有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言的ggplot2知识点有哪些"文章能帮助大家解决问题。
千家信息网最后更新 2025年02月01日R语言的ggplot2知识点有哪些

这篇文章主要介绍"R语言的ggplot2知识点有哪些"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言的ggplot2知识点有哪些"文章能帮助大家解决问题。

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

下面以一份钻石的数据为例,这份数据非常大,随机取一个子集来画图。

require(ggplot2)

data(diamonds)

##设置种子,可重复(数字随意)

set.seed(42)

small <- diamonds[sample(nrow(diamonds), 1000), ]

##查看数据情况

head(small)

summary(small)

#画图实际上是把数据中的变量映射到图形属性上。以克拉(carat)数为X轴变量,价格(price)为Y轴变量。

p <- ggplot(data = small, mapping = aes(x = carat, y = price))

##上面这行代码把数据映射XY坐标轴上,需要告诉ggplot2,这些数据要映射成什么样的几何对象,下面以散点为例:

p + geom_point()

#如果想将切工(cut)映射到形状属性。(cut为数据集中的一个分类性状):

p <- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut))

p+geom_point()

#再比如我想将钻石的颜色(color)映射颜色属性:

p <- ggplot(data=small, mapping=aes(x=carat, y=price, shape=cut, colour=color))

p+geom_point()

3、几何对象(Geometric)

#在上面的例子中,各种属性映射由ggplot函数执行,只需要加一个图层,使用geom_point()告诉ggplot要画散点,于是所有的属性都映射到散点上。

#geom_point()完成的就是几何对象的映射,ggplot2提供了各种几何对象映射,如geom_histogram用于直方图,geom_bar用于画柱状图,geom_boxplot用于画箱式图等等。

#不同的几何对象,要求的属性会有些不同,这些属性也可以在几何对象映射时提供,比如上一图,也可以用以下语法来画:

p <- ggplot(small)

p+geom_point(aes(x=carat, y=price, shape=cut, colour=color))

###重要:ggplot2支持图层,我通常把不同的图层中共用的映射提供给ggplot函数,而某一几何对象才需要的映射参数提供给geom_xxx函数。

直方图

#直方图最容易,提供一个x变量,画出数据的分布。

ggplot(small)+geom_histogram(aes(x=price))

#同样可以根据另外的变量给它填充颜色,比如按不同的切工:

ggplot(small)+geom_histogram(aes(x=price, fill=cut))

#可以将其分开,side-by-side地画直方图。

ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="dodge")

#还可以使用position="fill",按照相对比例来画。

ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="fill")

柱状图

#柱状图非常适合于画分类变量。在这里以透明度(clarity)变量为例。按照不同透明度的钻石的数目画柱状图。

ggplot(small)+geom_bar(aes(x=clarity))

#柱状图两个要素,一个是分类变量,一个是数目,也就是柱子的高度。数目在这里不用提供,因为ggplot2会通过x变量计算各个分类的数目。

#当然你想提供也是可以的,通过stat参数,可以让geom_bar按指定高度画图,比如以下代码:

ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3), stat="identity")

#柱状图和直方图是很像的,直方图把连续型的数据按照一个个等长的分区(bin)来切分,然后计数,画柱状图。而柱状图是分类数据,按类别计数。我们可以用前面直方图的参数来画side-by-side的柱状图,填充颜色或者按比例画图,它们是高度一致的。

#柱状图是用来表示计数数据的,但在生物界却被经常拿来表示均值,加上误差来表示数据分布,这可以通常图层来实现,我将在图层一节中给出实例。

密度函数图

#说到直方图,就不得不说密度函数图,数据和映射和直方图是一样的,唯一不同的是几何对象,geom_histogram告诉ggplot要画直方图,而geom_density则说我们要画密度函数图,在我们熟悉前面语法的情况下,很容易画出:

ggplot(small)+geom_density(aes(x=price, colour=cut))

ggplot(small)+geom_density(aes(x=price,fill=clarity))

#####colour参数指定的是曲线的颜色,而fill是往曲线下面填充颜色。

箱式图

#数据量比较大的时候,用直方图和密度函数图是表示数据分布的好方法,而在数据量较少的时候,比如很多的生物实验,很多时候大家都是使用柱状图+errorbar的形式来表示,不过这种方法的信息量非常低,被Nature Methods吐槽,这种情况推荐使用boxplot。

ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))

#geom_boxplot将数据映射到箱式图上,上面的代码,我们应该很熟悉了,按切工(cut)分类,对价格(price)变量画箱式图,再分开按照color变量填充颜色。

ggplot2提供了很多的geom_xxx函数,可以满足我们对各种图形绘制的需求。

geom_abline geom_area

geom_bar geom_bin2d

geom_blank geom_boxplot

geom_contour geom_crossbar

geom_density geom_density2d

geom_dotplot geom_errorbar

geom_errorbarh geom_freqpoly

geom_hex geom_histogram

geom_hline geom_jitter

geom_line geom_linerange

geom_map geom_path

geom_point geom_pointrange

geom_polygon geom_quantile

geom_raster geom_rect

geom_ribbon geom_rug

geom_segment geom_smooth

geom_step geom_text

geom_tile geom_violin

geom_vline

关于"R语言的ggplot2知识点有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

数据 变量 直方图 柱状 几何 函数 对象 不同 属性 颜色 知识 分类 知识点 参数 密度 数目 箱式 语言 代码 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器可以装声卡吗 网络安全监督检查的是什么 上海定制软件开发工程师 嘟嘟网络技术有限公司的排名 山东网信网络技术有限公司 沛县专业性软件开发质量服务 湖北移动服务器托管虚拟主机 信息技术与网络安全专业如何 世界互联网科技大奖 如何自己建造一台服务器 心得体会网络安全200字 僵尸毁灭工程服务器账号密码忘了 山东创时代网络技术有限公司 网络安全行业需要什么证书 计算机网络技术有哪些证要考 苏州商城软件开发要多少钱 怎样提取数据库数据 红客联盟网络安全室 网络安全法答题活动答案 以太网无源光网络技术 数据库带电 车联网网络安全和信息安全 美国服务器cn2线路 简述软件开发工程的8个阶段 虚拟网络技术的类型 iptv 网络安全 网络安全知识竞赛真题 沭阳工业网络技术多少钱 web服务器常见安全威胁 智慧团建团员电子数据库
0