Как построить вложенную круговую диаграмму, используя график в R? - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь построить вложенную круговую диаграмму, но результат не отражает реальность.

Скажем:

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

enter image description here

Приведенная круговая диаграмма вводит в заблуждение, поскольку предполагается, что распределение животных в соответствии сВ каждой стране распределение должно зависеть от страны.Но показанные круговые диаграммы показывают индивидуальное распределение.Я изо всех сил пытаюсь получить это используя заговор.

Буду очень признателен за любые предложения или помощь.

Спасибо!

1 Ответ

0 голосов
/ 12 июня 2018

Давайте проигнорируем весь вопрос, если нужно, но ответим, как можно создать вложенную круговую диаграмму.

Вы можете создать две круговые диаграммы, внешняя - это кольцевая диаграмма, т. Е. Путем установки 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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...