美文网首页
绘图——工具箱

绘图——工具箱

作者: Stone_Stan4d | 来源:发表于2017-12-27 21:25 被阅读45次

    此时点乃在下载ubuntu17.0版本的镜像,文件比较大,网速如龟爬。插空学习一下ggplot2

    1 揭示不确定性

    目的是展示数据中的不确定性的信息。

    变量X类型 仅展示区间 同时展示区间和中间值
    连续型 geom_ribbon geom_smooth(stat = "identity")
    离散型 geom_errorbar geom_crossbar
    geom_linerange geom_pointrange

    代码如下:

    library(ggplot2)
    d <- subset(diamonds, carat < 2.5 & rbinom(nrow(diamonds), 1, 0.2) == 1)
    d$lcarat <- -log10(d$carat)
    d$lprice <- -log10(d$price)
    
    detrend <- lm(lprice ~ lcarat, data = d)
    d$lprice2 <- resid(detrend)
    
    mod <- lm(lprice2 ~ lcarat * color, data = d)
    
    library(effects)
    effectdf <- function(...){
      suppressWarnings(as.data.frame(effect(...)))
    }
    color <- effectdf("color", mod)
    both1 <- effectdf("lcarat:color", mod)
    
    carat <- effectdf("lcarat", mod, default.levels = 50)
    both2 <- effectdf("lcarat:color", mod, default.levels = 3)
    
    qplot(lcarat, lprice, data = d, colour = color) #图1a
    qplot(lcarat, lprice2, data = d, colour = color)#图b
    
    
    图1a,对数分布图:价格-克拉值 图1b:对数价格残差-克拉值

    下面图2展示了模型评估结果中变量color的不确定性。左图为color的边际效应,右图是针对carat的不同水平(level),变量color的条件效应,误差棒显示了95%的逐点置信区间。
    代码如下:

    fplot <- ggplot(mapping = aes(y = fit, ymin = lower, ymax = upper))+
      ylim(range(both2$lower, both2$upper))
    fplot %+% color + aes(x = color) + geom_point() + geom_errorbar()
    
    fplot %+% both2 + 
      aes(x = color, colour = lcarat, group = interaction(color, lcarat))+
      geom_errorbar() + geom_line(aes(group = lcarat))+
      scale_colour_gradient()
    
    
    图2a 图2b
    图3a 图3b

    上图3展示模型估计结果中变量carat的不确定性。上左图为carat的边际效应,上右图则是针对变量color的不同水平,变量carat的条件效应。误差带显示了95%的逐点置信区间。

    2.统计摘要

    对于每个x的取值,计算对应y值的统计摘要通常是很有用的。在ggplot2中,这一角色由stat_summary()但当,它使用ymin,y和ymax等图形属性,为汇总y的条件分布提供了一种灵活的方法。

    2.1单独的统计摘要函数

    参数fun.y,fun.ymin和fun.ymax能够接受简单的数值型摘要计算函数,即该函数能够传入一个数据向量并返回一个数值型结果,如:mean(),median(),min(),max().

    2.2统一的摘要计算函数

    fun.data可以支持更复杂的摘要计算函数,当然也可以使用自己编写的摘要计算函数:如下,此函数应返回一个各元素有名称的向量作为输出。

    3.添加图形注解

    在使用额外的标签注解时,要记住的重要一点:这些注解仅仅是额外的数据而已。添加图形注解有两种方式:逐个添加或者批量添加。

    下面的例子,我们分别以两种方式,向经济数据中加入有关美国总统的信息。

    unemp <- qplot(date,unemploy,data=economics,geom="line",
       xlab="",ylab="No.unemployed(1000s)"))
    presidential <- presidential[-(1:3),]
    yrng <- range(economics$unemploy)
    xrng <- range(economics$date)
    unemp + geom_vline(aes(xintercept = as.numeric(start)),data=presidential)
    
    unemp+geom_rect(aes(NULL, NULL, xmin = start, xmax = end, fill = party), ymin = yrng[1], 
                    ymax = yrng[2], data = presidential, alpha = 0.2)+
      scale_fill_manual(values = c("blue", "red"))
    last_plot() + geom_text(aes(x = start, y = yrng[1], label = name), data = presidential,
                            size = 3, hjust = 0, vjust = 0)
    
    
    图4a 图4b
    图5a 图5b
    caption <- paste(strwrap("Unemployment rates in the US have varied a lot over the 
                             years", 40), collapse = "\n")
    unemp + geom_text(aes(x, y, label = caption), data = data.frame(x = xrng[2], 
                                                                    y = yrng[2]),
                      hjust = 1, vjust = 0, size = 4)
    
    highest <- subset(economics, unemploy == max(unemploy))
    unemp + geom_point(data = highest, size = 3, colour = "red", alpha = 0.5)
    
    图6a 图6b

    以上资料来源于《ggplot2:数据分析与图形艺术》

    相关文章

      网友评论

          本文标题:绘图——工具箱

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