#r #ggplot2 #ggplotly
#r #ggplot2 #ggplotly
Вопрос:
Я создаю визуальный элемент ggplot и использую ggplotly для интерактивности. Визуальный интерфейс ggplot в порядке, но когда я использую его с ggplotly, легенда обрезается…
Ниже приведены два визуальных элемента, которые я обсуждаю:
ggplot:
ggplotly:
Мой код:
plotall <- ggplot(vacgdp3, aes(x=GDP, y=people_vaccinated_per_hundred, size = total_vaccinations, color = continent, text = paste0("People Vaccinated Per Hundred: ", people_vaccinated_per_hundred, "nCountry: ", country)))
geom_point(alpha = 0.7)
scale_x_continuous(labels = unit_format(unit = "Trillion", scale = 1e-12))
ylab("People Vaccinated Per Hundred")
xlab("GDP per Capita")
ggplotly(plotall, tooltip = c("x", "text"))
И я загрузил текстовый файл, который был создан с помощью dput() для набора данных:
https://www.dropbox.com/s/j0a7z9qfq20h91m/Vac.txt?dl=0
Я пытался отформатировать легенды с помощью ggplotly, но, похоже, ничего не работает. Любая помощь была бы очень признательна.
Кроме того, любые советы о том, как я могу улучшить свой вопрос, также приветствуются, поскольку я совсем новичок!
Комментарии:
1. Установите меньший размер графика. Например:
ggplotly(df, height = 300, width=300)
2. Это сокращает сюжет, но он все равно обрезается…
Ответ №1:
Не уверен в деталях, но вместо добавления заголовка легенды через ggplot
и ggplotly
вы могли бы удалить заголовки легенд из ggplot и добавить его через layout
. Этот способ plotly
позаботится о длине заголовка легенды и увеличит запас по мере необходимости:
library(plotly)
plotall <- ggplot(vacgdp3, aes(x=GDP, y=people_vaccinated_per_hundred, size = total_vaccinations, color = continent, text = paste0("People Vaccinated Per Hundred: ", people_vaccinated_per_hundred, "nCountry: ", country)))
geom_point(alpha = 0.7)
scale_x_continuous(labels = unit_format(unit = "Trillion", scale = 1e-12))
ylab("People Vaccinated Per Hundred")
xlab("GDP per Capita")
labs(color = NULL, size = NULL)
ggplotly(plotall, tooltip = c("x", "text")) %>%
layout(legend = list(title = list(text = "Legend title long long long long<br>")))
Комментарии:
1. Спасибо! Это делает легенду континента великолепной! Вы знаете, что случилось с легендой размера пузырька? Разве он не должен показывать оба?
2. Посмотрите поближе. На самом деле легенда о размере есть, но она была объединена с легендой о цвете и отображается как ключи легенды разного размера, вероятно, показывающие (невзвешенный) средний (??) размер стран на континенте. Кроме того, вы должны иметь в виду, что в целом ggplotly хорошо справляется с преобразованием ggplot в объект plotly, но plotly — это не интерактивный ggplot, это plotly, и поэтому существуют некоторые ограничения на то, что может быть достигнуто.