我正在为一个与diamonds
非常相似的数据框创建一个ggplotly。这是我到目前为止所做的:
ggplotly(ggplot(diamonds, aes(depth, colour = cut)) +
geom_density() +
xlim(55, 70))
它创建了以下内容:
当您将鼠标悬停在迹线上时,它会显示:深度,切割和密度。我还希望显示清晰度,所以我添加了以下内容:
ggplotly(ggplot(diamonds, aes(depth, text = paste("Clarity: ", clarity), colour = cut)) +
geom_density() +
xlim(55, 70))
当我将曲线悬停时,它会显示深度,清晰度,切割和密度。这就是我想要的。但是,如何将密度保持为一条曲线,就像我创建的第一个曲线而不是多条曲线一样?
答案 0 :(得分:1)
这有用吗?将额外线条的alpha设置为0(因此它们变得透明。使用geom_line作为geom_density仅使用alpha填充。(系统问题阻止测试)
ggplotly(
ggplot(diamonds, aes(depth, colour = cut)) +
geom_density() +
geom_line(aes(text = paste("Clarity: ", clarity)), stat="density", alpha=0) +
xlim(55, 70)
)
答案 1 :(得分:0)
我意识到这是一个陈旧的答案,但这里的主要问题是你正在尝试做一些逻辑上不可能的事情。
clarity
和cut
是两个不同的维度,因此您无法简单地将clarity
放在工具提示中的{{1因为该行代表组合在一起的所有不同cut
的钻石。
将clarity
添加到混合中后(通过clarity
美学),ggplot正确地将各种text
分开,以便它有一个clarities
来引用。您可以通过将clarity
添加到cut
来强制将其重新分组到group=cut
,但是您将失去aes
工具提示,因为那里有clarity
工具提示当您仅按clarity
进行分组时,cut
没有任何有意义的价值 - 再次,每个点都是一次性的明确。
理查德的解决方案只是一次显示两个图形,但使clarity
- 分组的图形不可见。我不确定这里最初的目标是什么,但这并没有完成任何有用的事情,因为除了正确分组的cut
频段之外,它只是让你鼠标悬停在不可见的峰值上。 / p>
我不确定您的原始数据是什么,但您只是无法显示两个维度,只能通过其中一个维度进行分组。您必须使用准确表示第二维的多条曲线,或者通过对其进行某种总结来展平第二维 - 在clarity
的情况下,不存在你可以做任何明智的总结,但如果是价格,你可以显示平均值。