想在一个页面上绘制两个ggplots.以Cookbook for R为例,它不起作用.错误是could not find function "multiplot".
然而ggplots是可绘制的,我也重新安装了R,ggplot2,重新启动等等.我做错了什么?
library(ggplot2)
# This example uses the ChickWeight dataset, which comes with ggplot2
# First plot
p1 <-
ggplot(ChickWeight, aes(x=Time, y=weight, colour=Diet, group=Chick)) +
geom_line() +
ggtitle("Growth curve for individual chicks")
# Second plot
p2 <-
ggplot(ChickWeight, aes(x=Time, y=weight, colour=Diet)) +
geom_point(alpha=.3) +
geom_smooth(alpha=.2, size=1) +
ggtitle("Fitted growth curve per diet")
# Third plot
p3 <-
ggplot(subset(ChickWeight, Time==21), aes(x=weight, colour=Diet)) +
geom_density() +
ggtitle("Final weight, by diet")
# Fourth …Run Code Online (Sandbox Code Playgroud) 在R中产生许多点的散点图(ggplot()例如使用)时,可能有许多点落后于其他点并且根本不可见.例如,见下图:

这是几十万个点的散点图,但大多数都落后于其他点.问题是当将输出转换为矢量文件(例如PDF文件)时,不可见点会使文件大小变大,并在查看文件时增加内存和CPU使用率.
一个简单的解决方案是将输出转换为位图图片(例如TIFF或PNG),但它们会失去矢量质量,并且可能会更大.我尝试了一些在线PDF压缩器,但结果与原始文件大小相同.
有什么好的解决方案吗?例如,某些方法来过滤不可见的点,可能是在生成绘图期间或之后通过编辑PDF文件?
我正在尝试在 R 中绘制由 ggplot 生成的大型热图。最终,我想使用 Illustrator 来“润色”此热图。
示例代码:
# Load packages (tidyverse)
library(tidyverse)
# Create dataframe
df <- expand.grid(x = seq(1,100000), y = seq(1,100000))
# add variable: performance
set.seed(123)
df$z <- rnorm(nrow(df))
ggplot(data = df, aes(x = x, y = y)) +
geom_raster(aes(fill = z))
Run Code Online (Sandbox Code Playgroud)
虽然我将绘图保存为矢量化图像(.pdf;那不是那么大),但打开时 pdf 的加载速度非常慢。我希望在打开文件时呈现数据框中的每个单独点。
我已经阅读了其他用于可视化矩阵的帖子(例如R 中的数据探索:显示大矩阵的热图,很快?)image(),但是我想使用 ggplot 来修改图像。
问题:如何加快此图的渲染速度?有没有办法(除了降低绘图的分辨率),同时保持图像矢量化,以加快这个过程?是否可以对矢量化 ggplot 进行下采样?