R Plotly 两个并排的图

R Plotly Two Plots side by side

我正在尝试并排绘制两个甜甜圈图。但是,我只得到一张图片。对我缺少的东西有什么建议吗?

library(dplyr)
library(plotly)

df1 <- as.data.frame(matrix(data = c("a","b", "c", 34,28, 29), nrow = 3, ncol = 2))
colnames(df1) <- c("category", "count")
df2 <- as.data.frame(matrix(data = c("Q","F", "G", 29,50, 76), nrow = 3, ncol = 2))
colnames(df2) <- c("group", "count")


p <- subplot(
  plot_ly(df1, labels = category, values = count, type = "pie", hole = 0.6, showlegend = TRUE),
  plot_ly(df2, labels = group, values = count, type = "pie", hole = 0.6, showlegend = TRUE),
  margin = 0.05,
  nrows = 2
)
p

当前输出:

你太接近了。这是将您的代码改编为 Plotly's pie charts examples:

plot_ly(df1, labels = category, values = count, type = "pie", hole = 0.6, showlegend = TRUE,
        domain = list(x = c(0, 1), y = c(0.5, 1))) %>%
  add_trace(data = df2, labels = group, values = count, type = "pie", hole = 0.6, showlegend = TRUE,
            domain = list(x = c(0, 1), y = c(0, 0.5)))

(他们使用 add_trace 而不是父 subplot。)

如果您想添加网格线(根据@Technophobe01 的示例),您可以添加

ax <- list(showline= TRUE)
plot_ly(...) %>% add_trace(...) %.%
  layout(xaxis = ax, yaxis = ax)

它还有很多选择,sapmles 在他们的 axes 页面上。

如果您采用 r2evans 解决方案,您可以将其与您的问题匹配如下:

library(dplyr)
library(plotly)

df1 <- as.data.frame(matrix(data = c("a","b", "c", 34,28, 29), nrow = 3, ncol = 2))
colnames(df1) <- c("category", "count")
df2 <- as.data.frame(matrix(data = c("Q","F", "G", 29,50, 76), nrow = 3, ncol = 2))
colnames(df2) <- c("group", "count")


p2<- subplot(
  plot_ly(df1, labels = category, values = count, type = "pie", hole = 0.6, showlegend = TRUE,
          domain = list(x = c(0, 0.5), y = c(0, 1))), 
  add_trace(data = df2, labels = group, values = count, type = "pie", hole = 0.6,
              domain = list(x = c(0.5, 1), y = c(0, 1))),
  margin = 0.05) 
p2

结果: