ggplotly:R,标记迹线名称但保留一行
ggplotly: R, labeling trace names but keep one line
我正在为与 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))
该命令创建以下内容:
当我将鼠标悬停在曲线上时,它会显示深度、净度、切工和密度。这是我想要的。但是,如何将密度保持为一条曲线,就像我创建的第一个图中的那样,而不是多条曲线?
这个有用吗?将额外线条的 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)
)
我知道这是一个旧答案,但这里的主要问题是您正在尝试做一些逻辑上不可能的事情。
clarity
和 cut
是两个独立的维度,因此您不能简单地将 clarity
放在由 cut
分组的行的工具提示中,因为该线代表所有不同 clarity
组合在一起的钻石。
一旦你将 clarity
添加到混合中(通过 text
美学),ggplot 正确地将各种 clarities
分开,因此它有一个 clarity
参考。您可以通过将 group=cut
添加到 aes
来强制它返回到仅按 cut
分组,但是您将丢失 clarity
工具提示,因为 [= 没有有意义的值10=] 当您仅按 cut
分组时 - 同样,每个点都同时清晰。
Richard 的解决方案只是同时显示两个图形,但使 clarity
分组的图形不可见。我不确定这里的最初目标是什么,但这并没有完成任何有用的事情,因为除了正确分组的 cut
条带之外,它只是让您将鼠标悬停在不可见的峰上。
我不确定您的原始数据是什么,但您根本无法显示两个维度并仅按其中一个维度进行分组。您要么必须使用准确表示第二个维度的多条曲线,要么通过对它进行某种总结来展平第二个维度 - 在 clarity
的情况下,您实际上没有任何明智的总结可以,但如果是价格,您可以显示平均值。
我正在为与 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))
该命令创建以下内容:
当我将鼠标悬停在曲线上时,它会显示深度、净度、切工和密度。这是我想要的。但是,如何将密度保持为一条曲线,就像我创建的第一个图中的那样,而不是多条曲线?
这个有用吗?将额外线条的 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)
)
我知道这是一个旧答案,但这里的主要问题是您正在尝试做一些逻辑上不可能的事情。
clarity
和 cut
是两个独立的维度,因此您不能简单地将 clarity
放在由 cut
分组的行的工具提示中,因为该线代表所有不同 clarity
组合在一起的钻石。
一旦你将 clarity
添加到混合中(通过 text
美学),ggplot 正确地将各种 clarities
分开,因此它有一个 clarity
参考。您可以通过将 group=cut
添加到 aes
来强制它返回到仅按 cut
分组,但是您将丢失 clarity
工具提示,因为 [= 没有有意义的值10=] 当您仅按 cut
分组时 - 同样,每个点都同时清晰。
Richard 的解决方案只是同时显示两个图形,但使 clarity
分组的图形不可见。我不确定这里的最初目标是什么,但这并没有完成任何有用的事情,因为除了正确分组的 cut
条带之外,它只是让您将鼠标悬停在不可见的峰上。
我不确定您的原始数据是什么,但您根本无法显示两个维度并仅按其中一个维度进行分组。您要么必须使用准确表示第二个维度的多条曲线,要么通过对它进行某种总结来展平第二个维度 - 在 clarity
的情况下,您实际上没有任何明智的总结可以,但如果是价格,您可以显示平均值。