zoukankan      html  css  js  c++  java
  • R语言之数据可视化

    使用ggplot2绘图的本质,是把数据映射到几何客体的美学属性上。

    1. 层(layer)

      

    2. 绘图函数

      - qplot()

        · 类似于Base系统的plot(), 参数包含 aesthetics / geom / facet ...

        · 隐藏了绘图实现的细节

      - ggplot()

        · 是核心, 可以实现qplot()无法实现的功能

        · 调用ggplot()本身并不能实现绘图, 要在其基础上添加层(如geom_point())才可以

    3. 用 qplot() 画图

    library(ggplot2) 
    # 加载ggplot2包
    
    qplot(Wind, Temp, data=airquality, color=Month)
    # color=Month使得颜色按照月份渐变
    
    airquality$Month <- factor(airquality$Month)
    # Month变量转换成factor,即分类变量
    qplot(Wind, Temp, data=airquality, color=Month)
    # 此时图标每个月份对应一个颜色
    
    qplot(Wind, Temp, data=airquality, color=I("red"))
    # 使用I所有点的颜色会变成指定颜色
    
    qplot(Wind, Temp, data=airquality, shape=Month)
    # color=Month使得不同月份的数据的点的形状不同
    
    qplot(Wind, Temp, data=airquality, size=Month)
    # color=Month使得不同月份的数据的点的大小不同
    
    qplot(Wind, Temp, data=airquality, size=I(1))
    # 使用I所有点的大小设置为指定的大小
    
    qplot(Wind, Temp, data=airquality, size=I(3),
          xlab="Wind(mph)", ylab="Temperature", main="Wind vs. Temp")
    # 加入轴标签和图名
    
    qplot(Wind, Temp, data=airquality, geom=c("point","smooth"))
    # smooth会给一条拟合回归线,算是统计信息,阴影为置信区间
    
    qplot(Wind, Temp, data=airquality, color=Month, geom=c("point","smooth"))
    # 每个月份不同颜色,并且每个月份数据各自拟合了对应颜色的回归线
    
    qplot(Wind, Temp, data=airquality, facets=.~Month)
    # 把整个面板分成了一行五列,每一列对应一个月份
    
    qplot(Wind, Temp, data=airquality, facets=Month~.)
    # 把 .~ 放在Month后面,则变成五行一列,每一行对应一个月份
    
    qplot(Wind, data=airquality, facets=Month~.)
    # 只传一个参数则默认柱状图,传两个参数则为散点图
    
    qplot(y=Wind, data=airquality)
    # 若已写明y=...,则仍然为散点图
    
    qplot(Wind, data=airquality, fill=Month)
    # 得到累加的柱状图,并且不同月份使用了不同颜色表示
    
    qplot(Wind, data=airquality, geom="density", color=Month)
    # geom=“density”绘制频率分布的轮廓线,color=Month生成每个月份对应轮廓线
    
    qplot(Wind, data=airquality, geom="dotplot")
    # geom="dotplot"绘制点图
    

      

    4. 用 ggplot() 画图

    library(ggplot2) 
    # 引入ggplot2包
    ggplot(airquality, aes(Wind, Temp)) + geom_point(color="steelblue", alpha=0.4, size=5)
    # ggplot内为数据层和美学层,再加上几何客体层即可绘制图形,图形设为蓝色,0.4的透明度,点的尺寸为5
    ggplot(airquality, aes(Wind, Temp)) + geom_point(aes(color=factor(Month)), alpha=0.4, size=5)
    # 每个月份对应一个颜色,注意颜色属性要放在aes美学层中
    
    ggplot(airquality, aes(Wind, Temp)) + geom_point() + geom_smooth()
    # 在几何客体层添加统计信息,即,添加拟合回归线和置信区间
    
    ggplot(airquality, aes(Wind, Temp)) + geom_point() + stat_smooth()
    # 在统计层添加统计信息
    
    ggplot(airquality, aes(Wind, Temp)) + stat_smooth()
    # 只留下统计层,则只得到拟合回归线和置信区间,而没有显示点
    
    ggplot(airquality, aes(Wind, Temp)) + stat_smooth(method="lm", se=FALSE)
    # 使用线性回归方法设置回归线,置信区间不显示
    
    ggplot(airquality, aes(Wind, Temp)) + stat_smooth(method="lm", se=FALSE, aes(color=factor(Month)))
    # 每个月份对应一条回归线,使用不同颜色显示
    
    ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + stat_smooth(method="lm", se=FALSE)
    # 也可把color=factor(Month)直接放在aes层中
    
    ggplot(airquality, aes(Wind, Temp, color=factor(Month),group=1)) + geom_point() + stat_smooth(method="lm", se=FALSE)
    # group=1把所有数据当作一组数据拟合回归线,点仍然是五种不同颜色
    
    ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + geom_point() + stat_smooth(method="lm", se=FALSE, aes(group=1)) + 
      stat_smooth(method="lm", se=FALSE)
    # 把group=1放入统计层,并再添加一个统计层,这样整体的数据和按月份的数据均会展示,即产生6条拟合回归线
    
    library(RColorBrewer)
    # 加载RColorBrewer包,用于设置颜色
    myColors <- c(brewer.pal(5, "Dark2"), "black")
    # 从Dark2调色板中选取5个颜色,第6个颜色设置为黑色
    display.brewer.pal(5, "Dark2")
    # 显示Dark2调色板中的5个颜色
    ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + 
      geom_point() + 
      stat_smooth(method="lm", se=FALSE, aes(group=1, color="All")) + 
      stat_smooth(method="lm", se=FALSE) + 
      scale_color_manual("Month", values=myColors)
    # 把myColors中的颜色设置到图上
    
    ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + 
      geom_point() + 
      stat_smooth(method="lm", se=FALSE) + 
      scale_color_manual("Month", values=myColors) +
      facet_grid(.~Month)
    # 面层,facet_grid(.~Month)使面板分为一行五列, facet_grid(Month~.)使面板分为一列五行
    
    ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + 
      geom_point() + 
      stat_smooth(method="lm", se=FALSE) + 
      scale_color_manual("Month", values=myColors) +
      facet_grid(.~Month) +
      theme_classic()
    # 主题层, theme_classic()使背景色全部为白色, 使用 ?theme 查看帮助文档 
  • 相关阅读:
    P4374 [USACO18OPEN]Disruption P
    POJ
    Git
    SpringBoot集成RabbitMQ
    GIS类型文件剖析
    SpringBoot全局异常处理
    SpringCloud Feign异常处理
    SpringBoot注解
    Restful风格接口定义
    LOD技术的理解
  • 原文地址:https://www.cnblogs.com/wnzhong/p/6440637.html
Copyright © 2011-2022 走看看