美文网首页R语言R语言知识干货
R语言学习笔记——ggplot2作图

R语言学习笔记——ggplot2作图

作者: 笨蛋白熊 | 来源:发表于2018-09-05 17:47 被阅读44次

     1.初识ggplot2

    1.1 功能

    是一个作图包;

    可以创建图表,如散点,柱状图,线图,将数据可视化;

    1.2 要素

    数据(Data)和映射(Mapping)

    几何对象(Geometric)

    标尺(Scale)

    统计变换(Statistics)

    坐标系统(Coordinante)

    图层(Layer)

    分面(Facet)

    主题(Theme)

    1.3 理念

     ggplot2将数据,数据到图形要素的映射,以及和数据无关的图形要素绘制分离。

    """

    ggplot(data,aes(x,y)) + 初始化图形并指定数据源和作图变量

    geom_type()+              指定图形的类型

    annotate()+                   添加文本注释

    labs()+                          修改住坐标和坐标轴标题

    """

    1.4逻辑

    按图层叠加作图,通过+进行叠加

    2 作图

    2.1散点图

    ggplot(data,aes(mpg,x,y))+geom_point()

    """

    install.packages("ggplot2")

    #加载需要使用的包

    library(ggplot2)

    ggplot(mtcars,aes(mpg,wt))+geom_point()

    """


    2.2线形图

    ggplot(data,aes(mpg,x,y))+geom_line()

    2.3 柱状图

    查看频率分布情况:

    ggplot(data,aes(x))+geom_bar()

    """

    ggplot(mtcars,aes(cyl))+geom_bar()

    ggplot(mtcars,aes(factor(cyl)))+geom_bar()

    """


    """

    #堆积柱形图

    ggplot(mtcars,aes(factor(cyl),fill=factor(am)))+geom_bar()

    """


    """

    #簇状柱形图

    bggplot(mtcars,aes(factor(cyl),fill=factor(am)))+geom_bar(position="dodge")

    """

    2.4 直方图

    查看变量的分布情况

    ggplot(data,aes(x))+geom_hisogram()

    """

    ggplot(mtcars,aes(mpg))+geom_histogram()

    """

    2.5 密度图

    查看变量频率分布情况;

    ggplot(data,aes(x))+geom_density()

    """

    #根据vs进行分组,

    #color:是对图形的边缘、点和线进行描绘;

    #fill 是进行填充

     ggplot(mtcars,aes(mpg,color=factor(vs)))+geom_density()

     ggplot(mtcars,aes(mpg,fill=factor(vs)))+geom_density()

    """


    2.6 箱线图

    查看变量的统计值分布

     ggplot(data,aes(分类变量x,y))+geom_boxplot()

    """

    > ggplot(mtcars,aes(factor(vs),mpg))+geom_boxplot()

    """

    3.分组组图

    3.1

    """

    ggplot(mtcars,aes(wt,mpg,color=qsec))+geom_point()

    """

    """

    #进行分组

    ggplot(mtcars,aes(wt,mpg,color=factor(vs)))+geom_point()

    """

    3.2 aes参数

    统一图层的颜色,参数在aes外面

    4 分面作图

    下面是两个经常要用到的分面函数。

    facet_wrap(facets, nrow = NULL, ncol = NULL, scales = "fixed", shrink = TRUE, as.table = TRUE, drop = TRUE)

    facet_grid(facets, margins = FALSE, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, drop = TRUE)

    其中facet_wrap和facet_grid不同在于facet_wrap是基于一个因子进行设置,facets表示形式为:~变量(~单元格) 而facet_grid是基于两个因子进行设置,facets表示形式为:变量~变量(行~列),如果把一个因子用点表示,也可以达到facet_wrap的效果,也可以用加号设置成两个以上变量 

     4.1 轴刻度一致

    单变量作图

    """

     ggplot(mtcars,aes(wt,mpg))+geom_point()+facet_grid(vs~.)

    """

    """

    gplot(mtcars,aes(wt,mpg))+geom_point()+facet_grid(.~vs)

    """

    双变量作图

    4.2  轴刻度不一致

    不同纵轴刻度

    不同横轴刻度

    """

    ggplot(mtcars,aes(wt,mpg))+geom_point()+facet_grid(~vs,scales="free")

    """

    # 这里把scales 设置成free之后,可以看出每个分面都有自己的横坐标刻度,可以单独对x轴或y轴设置。

    nrow,ncol 分面索要设置成的行和列,参数为数值,表示几行或者几列

    scales  参数fixed表示固定坐标轴刻度,free表示反馈坐标轴刻度,也可以单独设置成free_x或free_y

    shrink  也和坐标轴刻度有关,如果为TRUE(默认值)则按统计后的数据调整刻度范围,否则按统计前的数据设定坐标。

    drop    表示是否去掉没有数据的分组,默认情况下不显示,逻辑值为FALSE

    as.table   和小图排列顺序有关的选项。如果为TRUE(默认)则按表格方式排列,即最大值(指分组level值)排在表格最后即右下角,否则排在左上角。

    margins 通过TRUE或者FALSE表示否设置而一个总和的分面变量,默认情况为FALSE,即不设置

    space    表示分面空间是否可以按照数据进行缩放,参数和scales一样

    5.调整图像的元素

    5.1形状

    形状:geom_XXX(shape=x),x=1,2,3...,不同数值是不同的形状

    大小:size=x,x=1,2,3...,数值越大,尺寸越大

    5.2 颜色

    color:是对图形的边缘、点和线进行描绘;

    fill:填充图形内部的颜色

    指定填充一种颜色:直接在aes外部填写,color="某种颜色”

    5.3文本注释

    annotate("text",x=,y=,label="")

    text :表示添加类型为文本

    x=,y=表示在指定位置上放上文本

    label :表示填写的文本内容

    5.4标题:

    labs(little ="",x="",y="")

    5.5 加线条

    加竖线:geom_vline(xintercept=)

    加横线:geom_hline(yintercept=)

    5.6 xy轴互换

    coord_flip()

    5.7调整轴刻度的范围

    x轴:xlim(下限,上限)

    y轴:ylim(下限,上限)

    5.8 修改轴上的值

    X:scale_x_continuous(breaks(),labels=c()

    Y:scale_y_continuous(breaks(),labels=c()

    """

    ggplot(mtcars,aes(wt,mpg,color=factor(vs)))+geom_point()+annotate("text",x=4,y=20,label="yes")+labs(title="hello",x="xxx",y="yyy")+geom_vline(xintercept=3)+geom_hline(yintercept=20)+xlim(3,4)+ylim(15,25)

    """

    """

    ggplot(mtcars,aes(wt,mpg,color=factor(vs)))+geom_point()+annotate("text",x=4,y=20,label="yes")+labs(title="hello",x="xxx",y="yyy")+geom_vline(xintercept=3)+geom_hline(yintercept=20)+xlim(3,4)+ylim(15,25)+scale_x_continuous(breaks = c(3.00,3.25,3.50,3.75,4.00),labels=c("a","b","c","d","e"))

    """

    相关文章

      网友评论

        本文标题:R语言学习笔记——ggplot2作图

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