我正在尝试绘制嵌套饼图,但输出并没有反映现实。
让我们说:
library('plotly')
library('dplyr')
data <- data.frame(c('cat', 'dog', 'deer','chicken', 'cat', 'dog','duck', 'monkey', 'fish','cow','horse','dog'),c('US', 'US', 'US','US', 'UK', 'UK','UK', 'UK','China','China','China','China'),c(15,70,120,55,47,300,89,62,40,27,103,8))
colnames(data) <- c('animal', 'country', 'total_num')
p <- plot_ly(data) %>% add_pie(labels = ~animal, values = ~total_num, type = 'pie', hole = 0.7, sort = F) %>% add_pie(data, labels = ~country, values = ~total_num, domain = list(x = c(0.15, 0.85),y = c(0.15, 0.85)),sort = F)
p
由此产生的饼图具有误导性,因为它应根据每个国家分配动物,分布应取决于国家。但是显示的饼图显示了个人分布。 我正在努力使用剧情。
非常感谢任何建议或帮助。
谢谢!
答案 0 :(得分:4)
让我们忽略整个问题,如果有人应该回答如何创建嵌套饼图。
您可以创建两个饼图,外部图是圆环图,即设置hole = 0.7
,内部图表是设置domain
的子图。
library('plotly')
library('dplyr')
data <- data.frame(c('cats', 'monkeys', 'dogs'), c(30, 10, 20), c(20, 10, 10))
colnames(data) <- c('animal', 'street', 'home')
p <- plot_ly(data) %>%
add_pie(labels = ~animal, values = ~street, type = 'pie', hole = 0.7, sort = F) %>%
add_pie(data, labels = ~animal, values = ~home,
domain = list(
x = c(0.15, 0.85),
y = c(0.15, 0.85)),
sort = F)
p