R geom_area 工具提示始终显示相同的值

问题描述 投票:0回答:1

使用以下表示,当将鼠标悬停在上面或下面的线上时,工具提示保持显示相同的值。为什么会这样?有什么解决方法吗?

library(ggplot2)
library(plotly)

df <- data.frame(a = c(2020,2021,2022,2020,2021,2022),
                 b = c('Product A','Product A','Product A','Product B','Product B','Product B'),
                 c = c(500,540,630,70,140,100))

plot <- ggplot(df, aes(x = a, y = c, fill = b)) +
  geom_area(position = 'stack')
  # geom_bar(stat = 'identity', position = 'stack')
ggplotly(plot)

如果您注释掉 geom_area 行并包含 geom_bar 行,您会发现问题消失了。

r ggplot2 plotly ggplotly geom-area
1个回答
0
投票

这是由于

ggplot2
的变化(在去年左右的某个时候引入)导致
geom_area
现在使用
stat="align"
并进行一些插值。来自文档 (
?geom_area
)

为了便于堆叠,默认的 stat = "align" 将组插值到一组公共的 x 坐标。要关闭此插值,可以使用 stat = "identity" 来代替。

显然,plotly 不支持此更改(我想知道是否可以支持此功能)。因此,

text
属性将默认为第一个数据点的值(通过检查
plotly_json()
对象并在尝试手动添加工具提示文本时确定)。

但是正如文档建议的那样,您可以通过切换到

stat="identity"
来解决这个问题:

library(plotly, warn = FALSE)

plot <- ggplot(df, aes(x = a, y = c, fill = b)) +
  geom_area(stat = "identity")

ggplotly(plot)

© www.soinside.com 2019 - 2024. All rights reserved.