所以我用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个数据点。当我删除自定义文本工具提示时,它很好。工具提示仍然在图表上,我可以告诉它应该是什么,这些区域不能正确填充。
有什么方法可以解决这个问题吗?代码挂起了一段时间,所以我认为它不是我的电脑的图形问题,而是图形中的实际渲染过程的问题。
编辑:
我已将问题缩小到text = paste("Value:", Value)
。如果我将代码修改为text=Value
,它就会很好。
现在的问题是工具提示看起来很愚蠢,如下所示:
_value_
X: _X_
Label: _label_
我希望它阅读:
Value: _value_
X: _x_
Label: _label_
任何人都知道如何解决这个问题?
Edit2:仍无法解决问题。
答案 0 :(得分:0)
原来ggplot2有一个内置于geom_text()
的标签功能,可以更有效地利用它。
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
,并在tooltip = "label"
函数中指定ggplotly()
。