【发布时间】:2020-12-01 02:47:05
【问题描述】:
我有多个图表,我用 ggplot 绘制然后发送到 plotly。我根据最近的日期设置图例顺序,以便人们可以轻松地解释图表。在生成 ggplot 时一切都很好,但是一旦我通过 ggplotly() 发送它,图例顺序就会恢复到原始因子水平。我尝试重新设置因素,但这会产生一个新问题 - 每个图表中的颜色都不同。
代码如下:
数据:
Country <- c("CHN","IND","INS","PAK","USA")
a <- data.frame("Country" = Country,"Pop" = c(1400,1300,267,233,330),Year=rep(2020,5))
b <- data.frame("Country" = Country,"Pop" = c(1270,1000,215,152,280),Year=rep(2000,5))
c <- data.frame("Country" = Country,"Pop" = c(1100,815,175,107,250),Year=rep(1990,5))
Data <- bind_rows(a,b,c)
Legend Ordering Vector - 这使用 2020 年作为确定顺序的年份。
Legend_Order <- Data %>%
filter(Year==max(Year)) %>%
arrange(desc(Pop)) %>%
select(Country) %>%
unlist() %>%
as.vector()
然后我创建我的情节并使用图例顺序作为休息时间
Graph <- Data %>%
ggplot() +
geom_line(aes(x = Year, y = Pop, group = Country, color = Country), size = 1.2) +
scale_color_discrete(name = 'Country', breaks = Legend_Order)
Graph
但是当我把它传递给:
ggplotly(Graph)
出于某种原因,情节忽略了休息参数并使用原始因子水平。 如果我事先设置因子水平,颜色方案就会改变(因为因子的顺序不同)。
如何在图表之间保持配色方案,但在使用 plotly 时更改图例顺序?
【问题讨论】: