美文网首页
第五部分第19章使用ggplot2进行高级绘图

第五部分第19章使用ggplot2进行高级绘图

作者: Hannahhao | 来源:发表于2020-05-29 22:33 被阅读0次
    "学习做图还是以实践为主,因此写好脚本的代码结合笔记梳理思路。这里笔记比较简略。"

    19.1 R中四种图形系统

    图形系统的载入

    系统 基础安装中是否包含 是否需要显示加载
    base Y N
    grid Y Y
    lattice Y Y
    ggplot2 N Y

    19.2 ggplot2包介绍

    ggplot的图采用加号+函数串联起来创建。

    library(ggplot2)
    ggplot(data=mtcars, aes(x=wt,y=mpg))+
      geom_point()+
      labs(title = "Automobile Data", x="Weight", y="Miles Per Gallon")
    
    ggplot(data=mtcars, aes(x=wt,y=mpg))+
      geom_point(pch=17,color="blue",size=2)+
      geom_smooth(method = "lm", color="red", linetype=2)+
      labs(title = "Automobile Data", x="Weight", y="Miles Per Gallon")
    
    mtcars$am <- factor(mtcars$am, levels = c(0,1), labels=c("Automatic","Manual"))
    mtcars$vs <- factor(mtcars$vs, levels = c(0,1), labels=c("V-Engine","Straight Engine"))
    mtcars$cyl <- factor(mtcars$cyl)
    ggplot(data=mtcars,aes(x=hp,y=mpg,shape=cyl,color=cyl))+
      geom_point(size=3)+
      facet_grid(am~vs)+
      labs(title="Automoblie Data by Engine Type", x="Horsepower",y="Miles Per Gallon")
    
    • ggplot()初始化图形并且指定要用到的数据来源(data)和变量(variable)。
    • aes()函数的功能:映射,指定每个变量扮演的角色。
    • geom()几何函数: 向图中添加了集合对象,包括点、线、条、箱线图和阴影区域。
    • lab()函数:可添加注释,如轴标签和标题。
    • pch=点的形状,size=点的大小,color=点的颜色,linetype=线的类型。
    • 分组:再一个图形中显示两组或多组观察结果。
    • 小面化:在单独、并排的图形上显示观察组。

    19.3 用几何函数指定图的类型

    常见几何函数

    函数 添加 选项
    geom_bar() 条形图 color, fill, alpha
    geom_boxplot() 箱线图 color, fill, alpha, notch, width
    geom_density() 密度图 color, fill, alpha,linetype
    geom_histogram() 直方图 color, fill, alpha,linetype,binwidth
    geom_hline() 水平线 color, alpha,linetype,size
    geom_jitter() 抖动点 color, fill, alpha,shape
    geom_line() 线图 colorvalpha, linetype, size
    geom_point() 散点图 color, alpha, shape, size
    geom_rug() 地毯图 color, side
    geom_smooth() 拟合曲线 method, formula, color, fill, linetype, size
    geom_text() 文字注解
    geom_violin() 小提琴图 color, fill, alpha, linetype
    geom_vline() 垂线 color, alpha, linetype, size

    几何函数常见选项

    选项 详述
    color 对点、线和填充区域的边界着色
    fill 对填充区域着色
    alpha 颜色的透明度,从0-1
    linetype 图案的线条,1=实线,2=虚线,3=点,4=点破折号,5=长破折号,6=双破折号
    size 点的尺寸和线的宽度
    shape 点的形状
    position 绘制诸如条形图和点等对象的位置,条形图dodge=分组条形图并排,stacked=堆叠分组条形图,fill=垂直地堆叠分组条形图并规范其高度相等,点jitter=减少点重叠
    binwidth 直方图的宽度
    notch 方块图是否应为缺口
    sides 地毯图的安置(b=底部,l=左部,t=顶部,r=右部,bl=左下部等)
    width 箱线图的宽度

    19.4 分组

    在R中,组通常用分类变量的水平因子来定义。
    分组是通过ggplot2图将一个或多个带有诸如形状、颜色、填充、尺寸和线类型的视觉特征的分组变量来完成的。

    data("Salaries",package = "car")
    ggplot(Salaries, aes(x=salary,fill=rank))+
      geom_density(alpha=.3)
    
    ggplot(Salaries, aes(x=yrs.since.phd, y=salary, color=rank,shape=sex))+
      geom_point()
    
    ggplot(Salaries, aes(x=rank, fill=sex))+
      geom_bar(position = "stack")+labs(title='position="stack"')
    ggplot(Salaries, aes(x=rank,fill=sex))+
      geom_bar(position="dodge")+labs(title='position="dodge"')
    ggplot(Salaries, aes(x=rank,fill=sex))+
      geom_bar(position="fill")+labs(title='position="fill"')
    


    19.5 刻面

    ggplot2的刻面图函数

    语法 结果
    facet_wrap(~var,ncol=n) 将每个var水平排列成n列的独立图
    facet_wrap(~var,nrow=n) 将每个var水平排列成n行的独立图
    facet_grid(rowvar~colvar) rowvar和colvar组合的独立图
    facet_grid(rowvar~.) 每个rowvar水平的独立图,配置成一个单列
    facet——grid(.~colvar) 每个colvar水平的独立图,配置成一个单行

    19.6 添加光滑曲线

    geom_smooth()函数来添加一系列的平滑曲线和置信区域。

    选项 描述
    method= 使用平滑函数,lm,glm,smooth,rlm,gam
    formula y~x(默认), y~log(x), y~poly(x,n)
    se 绘制置信区间
    level 使用的置信区间水平(默认95%)
    fullrange 指定拟合应涵盖全图或仅仅是数据

    19.7 修改ggplot2图形的外观

    19.7.1 坐标轴

    控制坐标轴和刻度线外观的函数

    函数 选项
    scale_x_continuous breaks=指定刻度标记,labels=指定刻度标记标签,limits=控制要展示的值的范围
    scale_y_continuous
    scale_x_discrete breaks=对因子的水平进行放置和排序,labels=指定这些水平的标签,limits=表示哪些水平应该展示
    scale_y_discrete
    coord_flip() 颠倒x轴和y轴

    19.7.2 图例

    图例是指出如何用颜色、形状、尺寸等视觉特性表示数据特征的指南。

    19.7.3 标尺

    使用标尺把数据空间的观察值映射到可视化的空间中。

    19.7.4 主题

    theme()函数可以调整字体、背景、颜色和网格线等。
    主题可以使用一次,也可以保存起来应用到多个图中。

    19.7.5 多重图

    图形参数mfrow和基本函数layout()把两个或更多的基本图放到单个图形,但在刚ggplot2包中不适用。

    ggplot2使用gridExtra包中的grid.arrange()函数,需事先安装。

    install.packages("gridExtra")
    library(gridExtra)
    p1 <- ggplot(data=Salaries, aes(x=rank))+
      geom_bar()
    p2 <- ggplot(data = Salaries, aes(x=sex))+
      geom_bar()
    p3 <- ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary))+
      geom_point()
    grid.arrange(p1,p2,p3, ncol=3)
    

    19.8 保存图形

    ggsave()函数保存图形

    myplot <- ggplot(data=mtcars, aes(x=mpg))+
      geom_histogram()
    ggsave(file="mygraph.png", plot=myplot, width=5, height = 4)
    

    19.9 小结

    相关文章

      网友评论

          本文标题:第五部分第19章使用ggplot2进行高级绘图

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