【问题标题】:Why is ggplotly ruining my legends from ggplot?为什么 ggplotly 会破坏我的 ggplot 传说?
【发布时间】:2021-02-12 18:08:56
【问题描述】:

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

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

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

此外,任何关于如何改进我的问题提出的建议也将受到欢迎,因为我是新手!

【问题讨论】:

  • 将绘图大小设置为更小。例如:ggplotly(df, height = 300, width=300)
  • 这会缩小情节,但仍会以同样的方式剪辑...

标签: r ggplot2 ggplotly


【解决方案1】:

不确定细节,但不是通过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>")))

【讨论】:

  • 谢谢!这让大陆传奇看起来很棒!你知道气泡大小的传说是怎么回事吗?它不应该同时显示吗?
  • 仔细看看。实际上尺寸图例就在那里,但它与颜色图例合并并显示为不同大小的图例键,可能显示每个大陆国家的(未加权)平均(??)大小。此外,您必须记住,整体 ggplotly 在将 ggplot 转换为 plotly 对象方面做得很好,但 plotly 不是交互式 ggplot,它是 plotly,因此对可以实现的目标有一些限制。
猜你喜欢
  • 2021-05-18
  • 2013-06-25
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多