首页 > 解决方案 > 如何使用 plotly 从图表中删除因子?

问题描述

我正在尝试在现有的 ggplot2 图上使用 plotly 来允许我以交互方式过滤掉来自特定组的结果。但是我无法让轴更新以删除不再需要的级别。

library(ggplot2)
library(plotly)

data(iris)

mtcars$car_name <- row.names(mtcars)

p <- ggplot(mtcars, aes(x = car_name, y = disp, color = as.factor(cyl))) +
  geom_point()+
  coord_flip() 

ggplotly(p)

这会生成一个以气缸水平为因素的图形,当我单击一个水平时,它会从图形中删除相应的点(这是我想要的),但它不会删除不再包含任何数据的汽车。例如,如果我点击“8”,它会删除所有有 8 个气缸的东西,但 Merc 450SE 仍然列在 y 轴上。

本质上,我希望图表“刷新”并从轴上删除所有未使用的级别 - 有没有简单的方法来实现这一点?

标签: rggplot2plotly

解决方案


推荐阅读