飞道的博客

R语言笔记-ggplot2-散点图和拟合曲线图

298人阅读  评论(0)

概述

  • ggplot函数
    • data:定义待可视化的源数据
    • mapping:定义数据到图形的映射
      • aes:美学元素,定义图形的呈现细节
  • geom开头的一系列函数:指定图形元素
  • 主题 (theme):主题提供了一套绘图风格,在作图中最后加入+theme_*()即可套用相应的主题
    • e.g. theme_bw()黑白主题,theme_gray()灰色主题,theme_classic()经典主题

散点图:geom_point()

简单散点图

> library(ggplot2)
> data(mtcars)
> p<-ggplot(
+     data=mtcars, # 定义源数据
+     mapping=aes( # 定义美学元素
+         x=wt, # x轴代表wt取值
+         y=mpg # y轴代表mpg取值
+     )
+ )
> p+geom_point() # 以散点图形式呈现

带分组的散点图

可用于探索不同分组下两连续变量的关系。
分组因子既可以用颜色声明,也可以用形状声明。
注意在制图前必须先将分组变量因子化。

> mtcars$am<-factor(mtcars$am) # 必须将分组变量因子化后才能进行下一步,否则会报错
> ggplot(
+     data=mtcars, # 定义源数据
+     mapping=aes( # 定义美学元素
+         x=wt, # x轴代表wt取值
+         y=mpg, # y轴代表mpg取值
+         color=am # color,也即颜色元素代表am取值
+     )
+ )+geom_point()

类似地,如果将上述代码中aes内的color更换为shape,则会使用形状声明分组因子:

> ggplot(
+     data=mtcars,
+     mapping=aes(
+         x=wt,
+         y=mpg,
+         shape=am
+     )
+ )+geom_point()

声明≥3个连续变量特征的散点图

除x、y轴可用于排布连续变量外,也可以把连续变量数值赋予散点的颜色 (color)或尺寸 (size)等属性。

> ggplot(
+     data=mtcars,
+     mapping=aes(
+         x=wt, # x轴代表wt取值
+         y=mpg, # y轴代表mpg取值
+         color=hp, # 颜色代表hp取值 (允许在一光谱上连续取值)
+         size=disp # 散点大小代表disp取值
+     )
+ )+geom_point()

效果如下:

拟合曲线图:geom_smooth()

使用geom_smooth()可绘制拟合曲线:

> ggplot(
+     data=mtcars,
+     mapping=aes(
+         x=wt,
+         y=mpg,
+         color=am # 此处颜色代表am取值
+     )
+ )+geom_smooth() # 因为am是离散的因子,所以后面geom_smmoth出来是两条线,也即分别拟合


通过声明geom_smooth()中的method参数,可设置拟合方法。
例如:声明method="lm"可进行直线拟合,不再赘述。

同时呈现分组散点图与整体拟合图:stat_smooth()

ggplot中仅声明x、y取值,而在geom_point()中以aes声明分组特征,并在后面加上stat_smooth(),可同时呈现分组散点图与整体拟合图。

> ggplot(
+     data=mtcars,
+     mapping=aes( # 这里没有对am进行mapping,所以下面的stat_smooth不会影响am
+         x=wt,
+         y=mpg
+     )
+ )+geom_point(aes(color=am)) + stat_smooth()

根据分类变量取值分别作图:facet_grid()

> ggplot(
+     data=mtcars,
+     mapping=aes(
+         x=wt,
+         y=mpg
+     )
+ )
+ +geom_point()
+ +stat_smooth()
+ +facet_grid(~am) # 以am的不同取值分组作图

保存图形:ggsave()

语法:ggsave("含扩展名的保存名",图形对象名,额外声明的参数)

> p<-ggplot(data=Arthritis,mapping=aes(
+     x=Treatment,
+     fill=Improved
+ ))+geom_bar()
> ggsave("p.tiff",p,dpi=300) # 保存为精度为300 dpi的tiff文件

转载:https://blog.csdn.net/ethmery/article/details/112583698
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场