R сюжетная круговая диаграмма - как отобразить всю длинную легенду?

У меня есть круговая диаграмма, показывающая количество людей, которые побывали в разных странах. Список стран довольно длинный, и легенда не показывает их всех в окне. Существует полоса прокрутки, которую можно использовать, чтобы увидеть более поздние элементы в списке, но она не очень очевидна и также бесполезна, если я хочу сделать снимок (статическое изображение) сюжетной фигуры, поскольку не все видны страны одновременно.

Кто-нибудь знает, как увеличить высоту окна, в котором видна легенда? Я сохраняю рисунок в html и хотел бы видеть полную легенду сразу в html-файле.

Вот пример:

# Load relevant libraries:

library(data.table)
library(plotly)
library(ggplot2)
library(RColorBrewer)
library(htmlwidgets)

# Example data set:

mydt <- structure(list(country = c("afghanistan", "african continent", 
"albania", "algeria", "american samoa", "asian continent", "australia", 
"bahamas", "bangladesh", "barbados", "bolivia", "bosnia and herzegovina", 
"botswana", "brazil", "bulgaria", "cambodia", "cameroon", "canada", 
"cape verde", "caribbean", "china", "colombia", "congo", "costa rica", 
"croatia", "cuba", "cyprus", "domestic", "dominica", "dominican republic", 
"egypt", "eritrea", "ethiopia", "european continent", "falkland island malvinas", 
"france", "gambia", "ghana", "greece", "hong kong", "hungary", 
"india", "indonesia", "iraq", "ireland", "israel", "italy", "jamaica", 
"jersey", "jordan", "kenya", "kuwait", "libyan arab jamahiriya", 
"lithuania", "macau", "macedonia the former yugoslav republic of", 
"malaysia", "maldives", "malta", "mauritius", "mexico", "middle east region", 
"morocco", "nepal", "nigeria", "no travel history", "pakistan", 
"panama", "peru", "philippines", "poland", "portugal", "qatar", 
"russian federation", "saint kitts and nevis", "saudi arabia", 
"scotland", "serbia", "sierra leone", "singapore", "south africa", 
"south east asia", "spain", "sri lanka", "sudan", "switzerland", 
"taiwan province of china", "tanzania united republic of", "thailand", 
"tunisia", "turkey", "united arab emirates", "united states", 
"unknown destination", "uzbekistan", "viet nam", "zimbabwe"), 
    people = c(2L, 6L, 2L, 1L, 1L, 13L, 1L, 1L, 9L, 2L, 1L, 2L, 
    1L, 2L, 2L, 1L, 1L, 1L, 12L, 2L, 5L, 2L, 2L, 3L, 1L, 12L, 
    9L, 392L, 1L, 6L, 25L, 1L, 1L, 3L, 1L, 3L, 2L, 5L, 5L, 1L, 
    1L, 78L, 17L, 4L, 13L, 1L, 1L, 2L, 1L, 1L, 4L, 1L, 1L, 2L, 
    1L, 1L, 5L, 2L, 1L, 1L, 18L, 1L, 21L, 3L, 3L, 1166L, 32L, 
    6L, 6L, 4L, 6L, 8L, 1L, 4L, 1L, 4L, 1L, 1L, 2L, 3L, 1L, 1L, 
    26L, 3L, 1L, 1L, 1L, 3L, 45L, 9L, 33L, 7L, 3L, 41L, 1L, 10L, 
    1L)), .Names = c("country", "people"), sorted = "country", class = c("data.table", 
"data.frame"), row.names = c(NA, -97L))

# Create pie chart:
travelpie = plot_ly(mydt, labels = mydt$country, values = mydt$people, type = "pie") %>%
    layout(title = "Travel destinations", 
           showlegend = T, margin = list(l = 50, r = 50, t = 50, b = 450))

# Write to html file:
saveWidget(travelpie, file = "My travel pie.html")

Я думал, что margin = list(...) Параметр может иметь аргумент для увеличения высоты окна легенды, но не может его найти. Любые идеи будут высоко ценится.

1 ответ

Решение

Коллега предоставил этот ответ:

В этом примере выглядит, как то, что ограничивает длину легенды, является основой круговой диаграммы. Если вы хотите, чтобы в списке была полная легенда, вам нужно добавить параметр высоты plot_ly функция:

travelpie = plot_ly(mydt, labels = mydt$country, values = mydt$people, type = "pie", 
                    height = 2500) %>%
            layout(title = "Travel destinations", 
                   showlegend = T, margin = list(l = 50, r = 50, t = 50, b = 450))
Другие вопросы по тегам