Аналогичный вопрос был задан, но оставлен без ответа.Мне нужна круговая вложенная круговая диаграмма, которая имеет внешние значения как подмножество внутренних значений.
Например, у меня есть простая таблица данных компакт-дисков, которые я купил в прошлом году, я хочу, чтобы круговая диаграмма показывала количество компакт-дисков с каждого континента, с которого пришла группа, и внешнее кольцо, чтобы показать отдельного человекастраны каждой полосы на конкретном континенте.
Данные при наведении на внутренней круговой диаграмме верны, но данные для внешнего кольца вводят в заблуждение.Например, в Германии есть 15 компакт-дисков из 40 европейских, но процент Германии составляет 8,62%.Немецкий% верен по отношению к общим 100%, но по сравнению с 40 европейскими компакт-дисками, купленными в этом году, Германия составляет 37,5%
Я не могу понять, как изменить фрейм данных, чтобы предоставить эти цифры, или как получить сюжетчтобы сделать это.
Это образец моего оригинального набора данных:
Artist Album Year Country Continent
1 Myrath Legacy 2016 Tunisia Asia
2 Myrath Sands 2011 Tunisia Asia
3 Orphaned Shalem 2011 Israel Asia
4 Orphaned Unsung 2018 Israel Asia
Круговая диаграмма представлена в виде:
output$bandChart <- renderPlotly({
plot_ly(freefilter() ,labels = ~Country, values = ~AlbumCount,
showlegend = FALSE
) %>%
add_pie(hole = 0.6,
textinfo = 'label',
textposition = 'inside',
insidetextfont = list(color = '#FFFFFF'),
marker = list(line = list(color = '#FFFFFF', width = 1)),
direction = 'clockwise',
sort = FALSE,
text = ~paste(Country, AlbumCount),
hoverinfo = 'text + percent') %>%
add_pie(freefilter(),labels = ~Continent, values = ~AlbumCount,
textinfo = 'label',
textposition = 'inside',
direction = 'clockwise',
sort = FALSE,
name = "Continent Data,
marker = list(line = list(color = '#FFFFFF', width = 1)),
domain = list(x = c(.2, 0.8), y = c(0.2, .8))
) %>%
config (collaborate = FALSE, displaylogo = FALSE ) %>%
layout(title = "Band Locations",
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
autosize = FALSE)
})
Я использую блестящий и скотчне включайте эти части кода.
Спасибо