Почему ggplotly портит мои легенды из ggplot?

#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, и поэтому существуют некоторые ограничения на то, что может быть достигнуто.