美文网首页数据-R语言-图表-决策-Linux-Python
前言+第一章:使用ggplot2 进行数据可视化

前言+第一章:使用ggplot2 进行数据可视化

作者: 致知_5974 | 来源:发表于2019-10-02 17:50 被阅读0次

    清洁数据: 每列都是一个变量 每行都是一个观测
    tidyverse:ggplot2 tibble readr purrr dplyr
    更新:tidyverse_update()(别老瞎更新)

    第一章:使用ggplot2 进行数据可视化
    package::function()可明确指出某个函数或数据集的来源
    如 ggplot2::ggplot()
    
    创建ggplot2图形
    data(mpg)
    ggplot(data = mpg)+  ### ggplot 创建一个坐标系
      geom_point(mapping = aes(x=displ,y=hwy))#### 向上加一个散点图图层
    模板:
    ggplot(data=<DATA>)+
        <GEOM_FUNCTION>(mapping=aes<MAPPINGS>)
    

    规则:ggplot(data=)用数据集创建一个坐标系,然后利用其它函数向上添加图层 tips:+必须放在上一行代码的末尾而不是开头
    mapping(): 定义了如何将数据集中的变量映射为图形属性
    ase():x和y参数分别制定了映射到x轴的变量与映射到y轴的变量

    标度变换

    ggplot2会自动为每个变量分配唯一的图形属性水平,如,给上图加上颜色

    ggplot(data = mpg)+
      geom_point(mapping = aes(x=displ,y=hwy,color=class))
    ggplot(data = mpg)+
      geom_point(mapping = aes(x=displ,y=hwy,color=displ<5))
    
    

    还可以添加 size shape(最多同时使用6种图形,多了就变点儿了) alpha(透明度)stroke等

    分面

    将图形分割成多个分面,显示数据子集的子图,特别适合添加分类变量
    函数 facet_wrap(),在~后添加变量,变量应为离散型

    ggplot(data = mpg)+
      geom_point(mapping = aes(x=displ,y=hwy))+
                   facet_wrap(~class, nrow = 2)
    

    通过两个变量进行分面

    ggplot(data = mpg)+
      geom_point(mapping = aes(x=displ,y=hwy))+
        facet_grid(drv~cyl)  
    ggplot(data = mpg)+
      geom_point(mapping = aes(x=displ,y=hwy))+
      facet_grid(.~cyl)   不想再行或列分面,可用. 代替
    

    几何对象 用来表示数据的几何图形对象. 可添加多个几何对象。而且只要将一个图形属性映射为一个离散型变量,ggplot2就会自动对数据进行分组来绘制多个几何对象。

    ggplot(data = mpg)+
      geom_smooth(mapping = aes(x=displ,y=hwy))+
      geom_point(mapping = aes(x=displ,y=hwy)) 局部映射,仅对该图层有效
    或者
    ggplot(data = mpg,mapping = aes(x=displ,y=hwy))+
      geom_smooth()+
      geom_point(mapping=aes(color=class))
    

    统计变换
    很多图形绘制的是数据集的原始数据,比如散点图,另外一些图形可以绘制那些计算出的新数据,比如条形图。
    绘图时用来计算新数据的算法称为stat(statistical transformation,统计变换),计算出的新数据为computed variables

    ggplot(data=diamonds)+
      geom_bar(mapping = aes(x=cut))
    ggplot(data=diamonds)+
      stat_count(mapping = aes(x=cut))
    每个几何对象函数都有一个默认统计变换,每个统计变换函数都有一个默认几何对象
    
    ggplot(data=diamonds)+
      stat_summary(mapping = aes(x=cut,y=depth),fun.ymin = min,
                   fun.ymax = max,fun.y = median)
    

    stat_summary()为x的每一个唯一值计算y值的摘要统计
    位置调整
    条形图 color 边框,fill 填充

    position="identity" 将每个对象直接显示再图中,为了避免重叠,可以alpha设置透明度,或者fill=NA

     ggplot(data=diamonds,mapping = aes(x=cut,color=clarity))+
    +   geom_bar(fill=NA,position="identity")
    ggplot(data=diamonds,mapping = aes(x=cut,fill=clarity))+
    +   geom_bar(alpha=1/5,position="identity")
    

    position = "fill",效果与堆叠相似,但每组堆叠条形具有同样高度,可以轻松比较各组间的比例,position = "dodge"将每组中的条形依次并列放置,可以用于比较各组间的数值。点图中,position="jitter",将每个点添加一个很小的随机抖动,可以将重叠的点散开

    ggplot(data=diamonds)+
      geom_bar(mapping = aes(x=cut,fill=clarity),position = "fill")
    ggplot(data=diamonds)+
      geom_bar(mapping = aes(x=cut,fill=clarity),position = "dodge")
    

    坐标系
    coord_flip(),可以用来交换x和y轴
    coord_quickmap()为地图设置合适的横纵比
    coord_polar() 极地坐标
    条形图变饼图

    bar=ggplot(data=diamonds)+
      geom_bar(mapping = aes(x=cut,fill=cut),
               show.legend = F,
               width = 1)+
      theme(aspect.ratio = 1)+
      labs(x=NULL,y=NULL)
    bar+coord_flip()
    bar+coord_polar()
    

    模板

    ggplot(data=<DATA>)+
        <GEOM_FUNCTION>(mapping=aes<MAPPINGS>,
                                          stat =<STAT>,
                                          position = <POSITION>)+ 
    <COORDINATE_FUCTION>+
    <FACET_FUNCTION>
    然后,你就可以画各种乱七八糟的图啦
    啦啦啦啦啦个屁

    相关文章

      网友评论

        本文标题:前言+第一章:使用ggplot2 进行数据可视化

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