美文网首页R可视化和ggplot2
ggplot2:第四章-用图层构建图像

ggplot2:第四章-用图层构建图像

作者: 小杜的生信筆記 | 来源:发表于2019-09-24 17:48 被阅读0次

第四章-用图层构建图像

4.1 简介

要求
**数据:必须是一个数据框(data frame),在绘图结束后可以被修改。
**一组图形属性映射,用来设定数据集中的变量如何映射到该图层的图形属性(见4.5)。
**几何对象,用来指定在图层中用那种几何对象来绘图。
**统计变换,对数据做一些有用的统计变换。

4.2 创建绘图对象

p <- ggplot(diamonds, aes(carat, price, colour = cut))  #直接创建

4.3 图层

添加几何对象(geom = "" )

p <- p + layer(geom = "point")

添加图层的参数设置
layer(geom, geom_params, stat, stat__paransm, data, ampping, position)
下面给出一段代码,生成组距为2, 铁青色的直方图

p <- ggplot(diamonds, aes(x=carat))
p <- p +layer(geom = "bar", geom_params = list(fill = "steelbule"),
              stat = "bin",
              stat_params = list(binwidth = 2)
              )
p

参数(option)
-mapping(可选):一组图形属性映射,通过aes()函数来设定,
-data(可选):一个数据集,

带有一个半透明生蓝色回归线的图层

library(scales)
bestfit <- geom_smooth(method = "lm", se = F,
                       colour = alpha("steelblue", 0.5), size = 2)
qplot(sleep_rem, sleep_total, data = msleep) + bestfit
qplot(awake, brainwt, data = msleep, log = "y") + bestfit
qplot(bodywt, brainwt, data = msleep, log = "xy") + bestfit

4.4 数据

ggplot2对于数据集的要求很简单:必须是一个数据框(data frame)。
####################
ggplot2数据集必须是一个“数据框(data frame)
关于数据变换的问题,参考"plyr" and "reshape"软件包
注“用 %+% 添加新的数据集以代替原来的数据集
####################

p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + geom_point()
p
mtcars <- transform(mtcars, mpg = mpg ^ 2)
p %+% mtcar

4.5 图形属性映射

aes()函数用来将数据变量映射到图形中,从而使变量成为可以被感知的图形属性
aes() 函数有一系列的图形属性

aes(x = weight, y = height, colour = age)

在此处将x坐标轴映射到weight, y坐标轴映射到height,colour映射到age。前面的参数可以省略,weight和height自动匹配到x和y。
注意:每个aes()函数里的变量都必须包含默认数据集或者图层数据集,这是保证ggplot2对象都是自含型的重要方式之一

4.5.1 图和图层

#下列所示,默认的图形属性映射可以在图形对象初始化时设定,或者过后使用“+”修改
p <- ggplot(mtcars)
summary(p)
p <- p + aes(wt, hp)
summary(p)
#使用+修改图形属性的例子件4.9.3节
#使用默认参数映射来添加图层的例子
p <- ggplot(mtcars,  aes(x = mpg, y = wt))
p + geom_point()  #散点图

###对象p中默认的映射可以在新图层里进行扩充或修改
p <- geom_point(aes(colour  = factor(cyl)))
p <- geom_point(aes(y = disp))

4.5.2 设定和映射

除了可以讲一个图形属性映射到一个变量,也可以在图层的参数里将其设定为一个单一值(例如:colour = “red")

p <- ggplot(mtcars, aes(mpg, wt))
p + geom_point(colour = "darkblue")  #颜色设定为深蓝色
p + geom_point(colour = "red")
p + geom_point(aes(colour = "darkbule")) 

这里将colour映射到:darkblue",实际上只想创建一个只含有“darkblue"字符的变量。


4.5.3 分组

-分组:group
-两个变量的组合可以正确分组时,可以使用interaction()函数
(在该部分有很多的不理解额地方,在后续的学习中进行提及)

4.7 统计变换

统计变换,简称stat,即对数据进行统计变换,它通常以某种方式对数据信息进行汇总.

## 钻石数据集中的克拉(carat)的密度直方图
ggplot(diamonds, aes(carat)) + geom_histogram(aes(y = ..density..), binwidth = 0.1)
##解读:第一个aes():将要输入的数据, geom_histogram():密度直方图,第二个人aes():变量
#y = ..density.. : y轴的名称, binwidth:直方图宽度
###使用qplot() 代码—同得
qplot(carat, ..density.., data = diamonds, geom = "histogram", binwidth = 0.1)

4.8 位置调整

位置调整一般见于处理离散型数据,连续型数据一般很少出现完全重叠的问题。

4.9 整合

位置调整一般见于处理离散型数据,连续型数据一般很少出现完全重叠的问题。

4.9.1 结合几何对象和统计变换

将几何对象和不同的统计变换进行组合,可以轻松的绘制出新颖的图形。

频率多边图

d <- ggplot(diamonds, aes(carat)) + xlim(0,3) ## aes(carat):x轴变量及输入, xlim(0,3):x轴变量大小0-3
#基本变量输入
d + stat_bin(aes(ymax = ..count..), binwidth = 0.1, geom = "area")
#stat_bin():统计变体, ymax = ..count.. :y轴变量, binwith:组距;geom = "area":类型
d + stat_bin(
  aes(size = ..density..), binwidth = 0.1, #size = ..density.. 标注
  geom = "point" , position = "identity"  #最右边的类型标注
) 

-热图

d + stat_bin(
  aes(y = 1, fill = ..count..), binwidth = 0.1,
  geom = 'tile', position = "identity"
)

ENDINGTime:2019.9.24 17:47

ggplot2: 第二章 -全网最全的教程
ggplot2:第三章-语法突破
ggplot2:第四章-用图层构建图像
ggplot2:第五章-工具箱(一)

相关文章

网友评论

    本文标题:ggplot2:第四章-用图层构建图像

    本文链接:https://www.haomeiwen.com/subject/nllbuctx.html