R绘图-ggplot2 (2)

简介: R绘图-ggplot2 (2)

4、标尺(Scale)

画图就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性。

#这一小节介绍标尺,在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,

#比如坐标刻度,可能通过标尺,将坐标进行对数变换;比如颜色属性,也可以通过标尺,进行改变。


#以数据(Data)和映射(Mapping)一节中所画散点图为例,将Y轴坐标进行log10变换,再自己定义颜色为彩虹色。

ggplot(small)+geom_point(aes(x=carat, y=price, shape=cut, colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))




5、统计变换(Statistics)

统计变换对原始数据进行某种计算,然后在图上表示出来,例如对散点图上加一条回归线。


#这里就不按颜色、切工来分了,不然ggplot会按不同的分类变量分别做回归,图就很乱,

#如果我们需要这样做,我们可以使用分面,这个将在后面介绍。

ggplot(small, aes(x=carat, y=price))+geom_point()+scale_y_log10()+stat_smooth()


#这里,aes所提供的参数,就通过ggplot提供,而不是提供给geom_point,因为ggplot里的参数,相当于全局变量,

#geom_point()和stat_smooth()都知道x,y的映射,如果只提供给geom_point(),则相当于是局部变量,

#geom_point知道这种映射,而stat_smooth不知道,当然你再给stat_smooth也提供x,y的映射,

#不过共用的映射,还是提供给ggplot好。


ggplot2提供了多种统计变换方式:


stat_abline       stat_contour      stat_identity     stat_summary

stat_bin          stat_density      stat_qq           stat_summary2d

stat_bin2d        stat_density2d    stat_quantile     stat_summary_hex

stat_bindot       stat_ecdf         stat_smooth       stat_unique

stat_binhex       stat_function     stat_spoke        stat_vline

stat_boxplot      stat_hline        stat_sum          stat_ydensity


统计#变换是非常重要的功能,我们可以自己写函数,基于原始数据做某种计算,并在图上表现出来,也可以通过它改变geom_xxx函数画图的默认统计参数。

比如#把boxplot的中位线替换成了平均值来作图。


6、坐标系统(Coordinante)

坐标系统控制坐标轴,可以进行变换,例如XY轴翻转,笛卡尔坐标和极坐标转换,以满足我们的各种需求。


#坐标轴翻转由coord_flip()实现

ggplot(small)+geom_bar(aes(x=cut, fill=cut))+coord_flip()


#转换成极坐标可以由coord_polar()实现:

ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")


#这也是为什么之前介绍常用图形画法时没有提及饼图的原因,饼图实际上就是柱状图,只不过是使用极坐标而已,柱状图的高度,对应于饼图的弧度,饼图并不推荐,因为人类的眼睛比较弧度的能力比不上比较高度(柱状图)


#靶心图:

ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()


#风玫瑰图(windrose)

ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()



7、图层(Layer)

photoshop流行的原因在于PS 3.0时引入图层的概念,ggplot的牛B之处在于使用+号来叠加图层,这堪称是泛型编程的典范。

在前面散点图上,我们已经见识过,加上了一个回归线拟合的图层。


#有了图层的概念,使用ggplot画起图来,就更加得心应手。

#做为图层的一个很好的例子是蝙蝠侠logo,batman logo由6个函数组成,在下面的例子中,我先画第一个函数,之后再加一个图层画第二个函数,不断重复这一过程,直到六个函数全部画好。


require(ggplot2)

f1data.frame(x=x,y=y)

  d -3*sqrt(33)/7,]

  return(d)

}


x1data.frame(x2=x2, y2=y2)

p2data.frame(x3=x3, y3=y3)

p3data.frame(x4=x4,y4=y4)

p4data.frame(x5=x5,y5=y5)

p5data.frame(x6=x6,y6=y6)

p6



#下面再以生物界中常用的柱状图+误差图为实例,展示ggplot2非常灵活的图层。

Normaldata.frame(V=c("Normal", "Cancer"), mean=m, sd=s)

d$V

相关文章
|
机器学习/深度学习 人工智能 编解码
AI虫子种类识别数据集(近3000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含近3000张已划分、标注的虫子图像,适用于YOLO系列模型的目标检测与分类任务。涵盖7类常见虫子,标注采用YOLO格式,结构清晰,适合农业智能化、小样本学习及边缘部署研究。数据来源多样,标注精准,助力AI虫害识别落地应用。
|
7月前
|
机器学习/深度学习 编解码 人工智能
102类农业害虫数据集(20000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
在现代农业发展中,病虫害监测与防治 始终是保障粮食安全和提高农作物产量的关键环节。传统的害虫识别主要依赖人工观察与统计,不仅效率低下,而且容易受到主观经验、环境条件等因素的影响,导致识别准确率不足。
|
数据挖掘 数据处理
R语言统计基本概念:探索描述性统计与推断统计的奥秘
【8月更文挑战第30天】描述性统计与推断统计是R语言统计分析中的两大基石。描述性统计帮助我们直观地了解数据的分布特征和基本属性,而推断统计则允许我们基于样本数据对总体进行推断和预测。在数据分析的实际应用中,两者相辅相成,共同构成了数据分析的完整框架。掌握这两大概念及其在R语言中的实现方法,对于提升数据分析能力和决策效率具有重要意义。
|
11月前
|
缓存 Python
Pyhton学习的自我理解和想法(11)
这是一篇关于Python函数学习的总结文章,基于B站千锋教育课程内容编写。作者在开学时间有限的情况下,重点梳理了函数的返回值(无返回值、有返回值、返回函数)、嵌套函数(闭包的应用)以及函数名字(有名字函数与匿名函数)。通过实例讲解了返回值的作用、闭包实现私有变量和缓存功能,以及lambda表达式的使用。本文旨在帮助读者深入理解函数相关概念,提升代码灵活性与可维护性。
|
算法 Python
群智能算法:【WOA】鲸鱼优化算法详细解读
本文详细解读了鲸鱼优化算法(WOA),这是一种受鲸鱼捕食行为启发的新兴群体智能优化算法,具有强大的全局搜索能力和快速收敛速度。文章分为五个部分,分别介绍了引言、算法原理、主要步骤、特点及Python代码实现。通过模拟鲸鱼的捕食行为,该算法能够在复杂的优化问题中找到全局最优解。
|
数据挖掘 Python 存储
Python 数据分析(PYDA)第三版(三)(2)
Python 数据分析(PYDA)第三版(三)
246 0
|
前端开发 芯片
【芯片前端】基于DC综合的逻辑深度与cell count汇总:加法器
【芯片前端】基于DC综合的逻辑深度与cell count汇总:加法器
384 0
|
Java API 索引
Java中的字符串
Java中的字符串
359 0
Java中的字符串

热门文章

最新文章