「图表最重大的价值在于,它迫使我们注意到从没预料会看到的东西。」---------John Tukey
在这篇文章,aes() (Aesthetic Mappings 美学映射) 是我们这次主要要介绍的主题,首先我们先看到上次文章中出现的点状图。
library(tidyverse)
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy))
虽然它是二维图形(x,y两个变数,即displ,hwy),但是我们可以透过aes()使得我们可以看到第三种变数。
我们来回顾一下资料型态:
glimpse(mpg)
其中displ代表的意思是车子的引擎大小,hwy代表的意思是车子在高速公路上的燃油效率。那我们再考虑class这个变数,它的意思是车子的种类。
我们如果执行以下程式码
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy,color=class))
则我们会看到,除了之前的散布图以外,它会依照class的不同,自动的给予不同的颜色,这样我们就可以看到更多的资讯。
接着我们还可以把color换成size,alpha或是shape试试。
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy,size=class))
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy,alpha=class))
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy,shape=class))
我们会发现,会有各式不同的参数在支援我们绘图。而且它会自动帮你配好颜色或是形状,但是其实我们也可以自己设定。
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy),color="blue")
甚至也可以做一些真假值的操作
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy,color=displ<5))
我们还有其他方法可以检视到第三种变数。
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy))+ facet_wrap(~class,nrow=2)
这个方法就是把我们第一张散布图根据不同的class做分类,个别绘製出子图,nrow的意思代表是要分成几列去呈现。
除此之外,我们甚至可以去看新增了两种变数的情况
ggplot(data=mpg)+ geom_point(mapping=aes(x=displ,y=hwy))+ facet_grid(drv~cyl)
如上图,它会把drv跟cyl再次做成二维网格,有些情况你会希望能做到这类的事情。
今天介绍了点状图的一些变形,事实上上述的一些方法也可应用在其他类型的图形上,我们在之后的文章会陆续介绍到,谢谢大家。