在这个`ggplot`命令中%>%做了什么?

时间:2015-12-01 04:34:55

标签: r ggplot2

我正在尝试理解Max Woolf提供的jupyter notebook中的ggplot示例。这是命令:

plot <- ggplot(df %>% filter(num_pickups > 10), aes(x=long, y=lat)) +
            geom_point(color="white", size=0.06) +
            scale_x_continuous(limits=c(min_long, max_long)) +
            scale_y_continuous(limits=c(min_lat, max_lat)) +
            theme_map_dark()

png("nyc-taxi-3.png", w=600, h=600, res=300)
plot
dev.off()

我的问题:

  1. %>%做什么?
  2. 在内部,我认为ggplot()geom_point()scale_x_continuous()等等都是ggplot包的一部分,对吗?当plot变量全部加在一起时,它如何做正确的事情?
  3. 是否只有一个绘图背景? png()函数调用生成PNG文件,但系统如何知道要使用哪个ggplot()调用?
  4. 单独运行plot有什么作用?它是如何做到的?
  5. dev位于何处?除dev以外还有其他dev.off()个命令吗?
  6. 当我在jupyter中运行时,结果是一个包含400万个点的PDF点,这会导致此命令行错误消息:

    [I 23:26:00.318 NotebookApp] Malformed HTTP message from 127.0.0.1: Content-Length too long

  7. 我可以采样1%的积分来避免这个问题吗?我该怎么做?

1 个答案:

答案 0 :(得分:3)

  1. %>%是从magrittr包重新导出的管道运算符。首先阅读小插图。

    Introducing magrittr

  2. 向ggplot添加内容会更改创建的对象。 ggplot的print方法根据变量的内容绘制一个合适的图。请查看str(plot)

  3. 在设备上绘制图:文件或R图窗口。 png打开PNG文件设备。

  4. 我假设你的意思是你的ggplot对象,而不是同名的函数。在命令行键入plot会调用print.ggplot(plot),它会绘制当前设备中的绘图,默认为R图窗口。

  5. 正如Ben Bolker所说,试试apropos("dev")。另请尝试?dev.offfind("dev.off")getAnywhere("dev.off")

  6. 尝试sample功能。