我需要在ggplot中重现InDesign中生成的图,以实现可重现性。
在此特定示例中,我将两个图合并到一个合成图中({patchwork}
为此我使用了程序包)。
然后,我需要将连接一个图上关键点的线与底部图上的对应点重叠。
这两个图是从相同的数据生成的,具有相同的x轴值,但具有不同的y轴值。
我已经在Stack Overflow上看到了这些示例,但是这些示例处理的是跨构面的绘制线,在这里尝试跨单独的图绘制线时,这在这里不起作用:
我尝试了几种方法,到目前为止,我最接近的方法是:
{grid}
package 添加带有grobs的行{gtable}
,并将面板的剪辑设置为off,以便我可以将线向上延伸到该图的面板之外。{patchwork}
。问题出在最后一步,因为x轴现在不再像添加线并将剪辑设置为off之前那样对齐(请参见代码示例)。
我也曾尝试用相结合的情节ggarrange
,{cowplot}
并{egg}
与{patchwork}
来自最接近的一次。
以下是我尝试创建的最佳最小reprex的尝试,但仍在捕捉我想要实现的细微差别。
library(ggplot2)
library(dplyr)
library(tidyr)
library(patchwork)
library(gtable)
library(grid)
# DATA
x <- 1:20
data <- data.frame(
quantity = x,
curve1 = 10 + 50*exp(-0.2 * x),
curve2 = 5 + 50*exp(-0.5 * x),
profit = c(seq(10, 100, by = 10),
seq(120, -240, by = -40))
)
data_long <- data %>% …
Run Code Online (Sandbox Code Playgroud) 我有一个包含多个列的数据框,其中包含我想要unnest
(或unchop
)的列表列。但是,它们的长度不同,因此产生的错误是Error: No common size for...
这是一个 reprex 来显示哪些有效,哪些无效。
library(tidyr)
library(vctrs)
# This works as expected
df_A <- tibble(
ID = 1:3,
A = as_list_of(list(c(9, 8, 5), c(7,6), c(6, 9)))
)
unchop(df_A, cols = c(A))
# A tibble: 7 x 2
ID A
<int> <dbl>
1 1 9
2 1 8
3 1 5
4 2 7
5 2 6
6 3 6
7 3 9
# This works as expected as the lists are the …
Run Code Online (Sandbox Code Playgroud) 我需要将数据帧转换为 JSON。数据框中有几个嵌套的数据框作为变量来转换为 JSON。
但是,当转换为 JSON 时,我需要将下面描述的数据Values1
作为对象({}
仅包含在 中)而不是数组(包含在 中[]
)。
下面的代码是一个表示,显示我当前的工作流程和问题。
library(dplyr)
library(tidyr)
library(jsonlite)
df1 <- data.frame(name = c("a", "b", "c"),
v = c(1, 2, 3),
w = c(10, 20, 30)) %>%
group_by(name) %>%
nest_legacy(.key = "Values1")
df2 <- data.frame(name = c("a", "b", "c"),
x = c(5, 10, 15),
y = c(100, 200, 300),
z = c(1000, 2000, 3000)) %>%
group_by(name) %>%
nest_legacy(.key = "Values2")
df3 <- df1 %>%
left_join(df2)
json <- toJSON(df3, dataframe = "rows", …
Run Code Online (Sandbox Code Playgroud)