我正在尝试创建一个基本图,然后重新创建同一图的修改版本,没有一些数据,也没有任何其他元素(本质上+ theme_void())。这里的困难在于保持绘图在两个版本之间保留的数据的准确大小和位置。
假设我有以下情节:
\nlibrary(ggplot2)\n\n# Sample data frame\nd <- data.frame(group = c("A", "B", "C"),\n value = c(10, 15, 5))\n\n# Create the original bar plot\ng1 <- ggplot() +\n geom_col(data = d,\n aes(x = group, \n y = value,\n fill = group)) +\n theme_bw()\nRun Code Online (Sandbox Code Playgroud)\n\n目的是创建(并保存为 .SVG)三个图,每个图一个条形(+ theme_void),但位置/大小与第一个图相同。
\n\n\n\n我想一种可能性是将其他所有内容设为白色/透明,但我想避免这种方法,因为我将进一步操作保存为 .SVG 的绘图,并且这些元素会困扰我(增加复杂性和更大的文件大小)。
\n我确实想要追求的另一种方法是进入工作流程的中间ggplot2,在正确的时间停止它(绘图上下文已经给出),修改它(如擦除除单个条之外的所有内容),最后渲染修改后的情节。
该包gginnards具有诸如 和 主题之类的功能,delete_layers()可以用运算符替换%+%,但据我所知,它们修改了大小/位置(应该如此,但这不是我想要的)。 …
我想使用世界的球形性质(不是它的投影)制作带有 voronoi 镶嵌的世界地图,类似于使用 D3.js,但使用 R。
据我所知(“再见平坦的地球,欢迎 S2 球面几何”)该sf包现在完全基于该s2包并且应该按照我的需要执行。但我不认为我得到了预期的结果。一个可重现的例子:
library(tidyverse)
library(sf)
library(rnaturalearth)
library(tidygeocoder)
# just to be sure
sf::sf_use_s2(TRUE)
# download map
world_map <- rnaturalearth::ne_countries(
scale = 'small',
type = 'map_units',
returnclass = 'sf')
# addresses that you want to find lat long and to become centroids of the voronoi tessellation
addresses <- tribble(
~addr,
"Juneau, Alaska" ,
"Saint Petersburg, Russia" ,
"Melbourne, Australia"
)
# retrive lat long using tidygeocoder
points <- …Run Code Online (Sandbox Code Playgroud)