[R语言]资料分析读书心得04---geom and stat

上次提到在ggplot2里面有很多geoms,每个geoms内部都有一个参数stat,如果我们现在感兴趣的是 geom_bar (长条图),我们可以透过跟之前一样的方式,输入 ?geom_bar 去查看它的stat参数的预设值,如果我们去查看 ?geom_bar 里面的说明内容,会看到有一个部分叫做 computed variable ,意思是透过 geom_bar 我们形成了新的变数。 geom_bar 的 computed variable 如下:

Computed variables:

1.count:number of points in bin

2.prop:groupwise proportion

而不同的geom当然有不同的stat预设值以及不同的Computed variable,所以当画图时,要特别小心你的stat是设定在什么值,以及有什么computed varible 可以用。说那么多,直接举例子来看吧!

library(tidyverse)

我们首先看到如果我们程式码打这样,会发生甚么事情呢?

ggplot(data=diamonds)+
geom_bar(mapping=aes(x=cut,y=color))

则我们的output会跑出:

错误: stat_count() can only have an x or y aesthetic.
Run rlang::last_error() to see where the error occurred.

这段错误讯息是在说明,其实geom_bar 只能有x或是y一个变数,不能同时出现,所以也说明不同的geom有的参数不会完全相同(不同于之前的散布图)。所以我们把程式码改成:

ggplot(data=diamonds)+  geom_bar(mapping=aes(x=cut))

http://img2.58codes.com/2024/201249354emKwAXZXk.png

我们就做出了一个长条图,但是如果我们去看一下diamonds这笔资料

head(diamonds)

http://img2.58codes.com/2024/20124935YSY7kHmi5X.png

会发现我们根本没有图形上y轴显示的count,而这个count其实就是我们刚刚的computed variable ,而长条图的内建就是透过count或prop去画图(count是个数,prop是比例),我们可以试试以下程式码。

ggplot(data=diamonds)+  geom_bar(mapping=aes(x=cut,y=..prop..,group=1))

http://img2.58codes.com/2024/20124935P5Jjx89EWx.png

如果要改成比例,则需要加上 group=1 才会显示出正确的比例。

刚刚提到每个geom都有一个预设的stat,geom_bar的预设stat是 count 。 而其实每个stat也有自己预设的geom,但是他并不是刚刚好的一一对应。到这里是不是一头雾水呢?其实说那么多只是想说明,当你图画错的时候,先别慌,可以查查是不是stat的设定错误了,但是其实 Rstudio 有附上 cheatsheet 来比对,所以忘记了就上去察看就是了。

stat 跟 geom 的关係其实相当複杂,不过这篇文章的介绍主要是希望大家可以稍微了解图形的画法,今天的介绍到这,谢谢大家。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章