首页 > 解决方案 > 为什么 ggplotly 会破坏我的 ggplot 传说?

问题描述

我正在创建一个 ggplot 视觉对象并使用 ggplotly 进行交互。ggplot 视觉效果很好,但是当我将它与 ggplotly 一起使用时,图例剪辑......

以下是我正在讨论的两个视觉效果:

格图:

在此处输入图像描述

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() 为数据集创建的 txt 文件:

https://www.dropbox.com/s/j0a7z9qfq20h91m/Vac.txt?dl=0

我一直在尝试用 ggplotly 格式化图例,但似乎没有任何效果。任何帮助将不胜感激。

此外,任何关于如何改进我的问题的提示也将受到欢迎,因为我很新!

标签: rggplot2ggplotly

解决方案


不确定细节,但不是通过添加图例标题ggplotggplotly您可以从 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>")))

在此处输入图像描述


推荐阅读