R语言ggplot2 (一):ggplot2包安装和初始作图

ggplot2是一款强大的图形可视化R包,其作图方式易于理解,且生成的图形精美,定制化程度也很高,应该是R里面最流行的可视化工具。本文关注于ggplot2包的安装、ggplot2基本作图语法等。

一 ggplot2的安装

> .libPaths("~/R/lib") 如果不安装到默认路径,可以在此设置安装路径
> install.packages("ggplot2")

#以上代码也可以直接用install.packages("ggplot2",lib=""~/R/lib"")代替,这样就只是把包安装到路径中,并不会载入路径,
#不过后续载入包就找不到路径了,需要在library的时候指定路径

载入ggplot2包,进行基础绘图,现在就用ggplot2自带的数据集激进型测试,mgp数据集的描述:Fuel economy data from 1999 and 2008 for 38 popular models of car(美国1999年到2008年38种流行汽车的能源使用数据),数据库详细说明可参考

https://www.rdocumentation.org/packages/ggplot2/versions/3.0.0/topics/mpg

> library(ggplot2, lib.loc=""~/R/lib"")  #如若ggplot2包安装在其它路径,就用lib.loc指定此路径,如在默认路径就不需要设置此参数

> mpg  #mpg数据集如下
# A tibble: 234 x 11
   manufacturer model   displ  year   cyl trans   drv     cty   hwy fl    class
   <chr>        <chr>   <dbl> <int> <int> <chr>   <chr> <int> <int> <chr> <chr>
 1 audi         a4       1.80  1999     4 auto(l… f        18    29 p     comp…
 2 audi         a4       1.80  1999     4 manual… f        21    29 p     comp…
 3 audi         a4       2.00  2008     4 manual… f        20    31 p     comp…
 4 audi         a4       2.00  2008     4 auto(a… f        21    30 p     comp…
 5 audi         a4       2.80  1999     6 auto(l… f        16    26 p     comp…
 6 audi         a4       2.80  1999     6 manual… f        18    26 p     comp…
 7 audi         a4       3.10  2008     6 auto(a… f        18    27 p     comp…
 8 audi         a4 qua…  1.80  1999     4 manual… 4        18    26 p     comp…
 9 audi         a4 qua…  1.80  1999     4 auto(l… 4        16    25 p     comp…
10 audi         a4 qua…  2.00  2008     4 manual… 4        20    28 p     comp…

下面来绘制一个简单的图形-散点图,但是出现了报错,说是没有png supoort,用capiabilities()可查看支持的图片类型,此时需要安装Cairo包来支持,安装方法见 https://www.cairographics.org/download/。首先在bash界面种安装Cairo需要的dev库文件,然后进入R安装Cairo即可。

> p <- ggplot(mpg,aes(x=hwy,y=cty)) + geom_point(aes(color=cyl)) + geom_smooth(method="lm")
> ggsave(filename="point.png",plot=p)

> capabilities()
       jpeg         png        tiff       tcltk         X11        aqua 
       TRUE        TRUE        TRUE        TRUE       FALSE       FALSE 
   http/ftp     sockets      libxml        fifo      cledit       iconv 
       TRUE        TRUE        TRUE        TRUE        TRUE        TRUE 
        NLS     profmem       cairo         ICU long.double     libcurl 
       TRUE       FALSE        TRUE        TRUE        TRUE        TRUE 

$ sudo apt-get install libcairo2-dev #For Debian and Debian derivatives including Ubuntu
$ sudo yum install cairo-devel       #For Fedora
$ zypper install cairo-devel         #For openSUSE
> install.packages("Cairo")
> ggplot(mpg,aes(x=hwy,y=cty)) + geom_point(aes(color=cyl),size=2) #这里的ggsave保存步骤就神略了,后面也一样

ggplot(mpg,aes(hwy,cty)) + geom_point(aes(color=cyl)),这是一般绘图语法,也可以写成ggplot(mpg) + geom_point(aes(hwy,cty,color=cyl)),aes表示进行数据映射,aes括号外面的参数表示直接赋值(与数据没有关系了),其中hwy映射到图上是x轴数据,cty映射到y轴上,cyl映射到颜色属性,图上每一个点的三重属性都得到展示了,一般输入的坐标轴属性有1~3个,如只用1个坐标轴属性值就可画直方图,一般画图是两个属性,在3D图种会用到3个坐标轴属性值,而除了映射到坐标轴的属性值之外,其它的属性如颜色、大写、标记、填充、分面等可以自由设置。

上图是典型的散点图,cyl设置了点的颜色属性,由于cyl是数值,所以就当成了连续变量,映射到颜色属性之后也成了连续的颜色,由于cyl就只有几类数据,可以按照离散变量来设置。

aes里面设置的变量都需要有数据映射,如果没有数据映射直接设置成定值,可在aes外设置,如下设置点的大小。

ggplot(mpg,aes(x=hwy,y=cty)) + geom_point(aes(color=factor(cyl)),size=0.5)

除了geom_point()绘画点图之外,还有很多图形可以绘制,并且可以通过调节参数绘制很多子图形,以下列举几种常见图形。

geom_line()             折线图

geom_bar()              图形图

geom_histogram()   直方图

geom_boxplot()       箱线图

geom_density()        密度函数分布图

geom_area()            面积图,覆盖数据以下的所有区域。

由于ggplot2几何图形都是geom_xxx形式,所以可以在R种列出所有的绘图类型

> library(ggplot2)
> ls("package:ggplot2", pattern="^geom_.+")
 [1] "geom_abline"     "geom_area"       "geom_bar"        "geom_bin2d"     
 [5] "geom_blank"      "geom_boxplot"    "geom_col"        "geom_contour"   
 [9] "geom_count"      "geom_crossbar"   "geom_curve"      "geom_density"   
[13] "geom_density_2d" "geom_density2d"  "geom_dotplot"    "geom_errorbar"  
[17] "geom_errorbarh"  "geom_freqpoly"   "geom_hex"        "geom_histogram" 
[21] "geom_hline"      "geom_jitter"     "geom_label"      "geom_line"      
[25] "geom_linerange"  "geom_map"        "geom_path"       "geom_point"     
[29] "geom_pointrange" "geom_polygon"    "geom_qq"         "geom_quantile"  
[33] "geom_raster"     "geom_rect"       "geom_ribbon"     "geom_rug"       
[37] "geom_segment"    "geom_smooth"     "geom_spoke"      "geom_step"      
[41] "geom_text"       "geom_tile"       "geom_violin"     "geom_vline"  

ggplot2在绘图的时候内部进行统计分析,每种几何图形都有默认的统计变换类型,统计变换用stat_xxx形式

> library(ggplot2)
> ls("package:ggplot2",pattern="stat_.+")
 [1] "stat_bin"             "stat_bin_2d"          "stat_bin_hex"        
 [4] "stat_bin2d"           "stat_binhex"          "stat_boxplot"        
 [7] "stat_contour"         "stat_count"           "stat_density"        
[10] "stat_density_2d"      "stat_density2d"       "stat_ecdf"           
[13] "stat_ellipse"         "stat_function"        "stat_identity"       
[16] "stat_qq"              "stat_quantile"        "stat_smooth"         
[19] "stat_spoke"           "stat_sum"             "stat_summary"        
[22] "stat_summary_2d"      "stat_summary_bin"     "stat_summary_hex"    
[25] "stat_summary2d"       "stat_unique"          "stat_ydensity"       
[28] "update_stat_defaults"

本文网址:https://mp.csdn.net/postedit/82914819

猜你喜欢

转载自blog.csdn.net/sinat_41624848/article/details/82914819