由于数据点过多导致 ggplotly 渲染问题

ggplotly rendering issues due to too many data points

所以我正在使用 ggplotly 渲染堆积面积图,结果如下:

问题是我一直在使用此方法添加自定义工具提示:

library(data.table)
library(ggplot2)
library(plotly)

Values1 <- rep(10, 10)
Values2 <- rep(20, 10)
X <- rep(seq(1, 10),2)
df <- data.frame(Values1=Values1, Values2=Values2)
df <- melt(df)
df2 <- data.frame(X=X, Label=df$variable, Value=df$value)

Plot <- ggplot(data=df2, aes(x=X, y=Value, fill=Label, text = paste("Value:", Value))) + 
geom_area(position='stack')
ggplotly(Plot, tooltip = c("text", "x", "fill")) 

此示例代码显然不会重现问题,而只是说明我是如何强制输入自己的工具提示值的。我的实际数据在堆积面积图中有 9500 个数据点。当我删除自定义文本工具提示时,它绘制得很好。工具提示仍然全部在图表上,我可以告诉一切都在它应该在的地方,只是这些区域没有正确填充。

有什么方法可以解决这个问题?代码挂了一段时间,所以我认为这不是我 PC 的图形问题,而是实际渲染过程的问题。

编辑:

我已将问题缩小为 text = paste("Value:", Value)。如果我将代码修改为 text=Value,它可以正常显示。

现在的问题是工具提示看起来很愚蠢,因为它会显示:

_value_
X: _X_
Label: _label_

当我想要它阅读时:

Value: _value_ 
X: _x_
Label: _label_

有人知道如何解决这个问题吗?

Edit2:问题还是没有解决。

原来 ggplot2 有一个内置的标签函数 geom_text() 可以更有效地利用 plotly。

Plot <- ggplot(data=df2, aes(x=X, y=Value, fill=Label, label = paste("Value:", Value))) + 
geom_area(position='stack')
ggplotly(Plot, tooltip = c("label", "x", "fill")) 

综上所述,在aes()映射中,将text改为label,并在ggplotly()函数中指定tooltip = "label"