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
结果:
我正在尝试并排绘制两个甜甜圈图。但是,我只得到一张图片。对我缺少的东西有什么建议吗?
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
结果: