如何在不禁用 geom_smooth 的情况下构建悬停文本?
How to construct hover text without disabling geom_smooth?
代码
library(ggplot2)
library(plotly)
df<-data.frame(replicate(2,sample(2000,size=29,replace=TRUE)))
p <- ggplot(df, aes(x=X1, y=X2*1000,text=X1))+geom_point()+geom_smooth()
p <- ggplotly(p, tooltip="text")
print(p)
生成具有平滑线的预期图以及鼠标悬停在其上显示 X1 值的点。
但是,将 ggplot 调用替换为:
ggplot(df, aes(x=X1, y=X2*1000,text=paste0("X1=",X1)))
无法生成平滑线,尽管它在鼠标悬停时达到预期效果。
这是一个错误吗?
有解决办法吗?
尝试将美学 text
放入 geom_point
的美学规范中。它应该让你自定义你的工具提示。尽管产生警告“警告:忽略未知美学:文本”,它仍会创建所需的工具提示。在plotly官方页面查看另一个example,在geom_point
的美学中使用text
。
df<-data.frame(replicate(2, sample(2000, size = 29, replace = TRUE)))
p <- ggplot(df, aes(x = X1, y = X2 * 1000)) +
geom_point(aes(text = paste0("X1=", X1, " X2=", X2, " Whatever needed"))) +
geom_smooth()
ggplotly(p, tooltip = "text")
编辑:geom_smooth
的工具提示
如果我们想显示 geom_smooth 的工具提示,我们需要一种不同的方法。我们需要 style()
函数来修改 plotly 对象中的跟踪属性值。
set.seed(1)
df <- data.frame(replicate(2, sample(2000, size = 29, replace = TRUE)))
p <- ggplot(df, aes(x = X1, y = X2 * 1000))
w <- ggplotly(p + geom_point() + geom_smooth())
text_1 <- paste0("Text geom_point:", "<br />", "X1=", w$x$data[[1]]$x, "<br />", "X2=", w$x$data[[1]]$y)
text_2 <- paste0("Text geom_smooth:", "<br />" , w$x$data[[2]]$text)
w %>%
style(text= text_1, traces = 1) %>%
style(text = text_2, traces = 2)
代码
library(ggplot2)
library(plotly)
df<-data.frame(replicate(2,sample(2000,size=29,replace=TRUE)))
p <- ggplot(df, aes(x=X1, y=X2*1000,text=X1))+geom_point()+geom_smooth()
p <- ggplotly(p, tooltip="text")
print(p)
生成具有平滑线的预期图以及鼠标悬停在其上显示 X1 值的点。
但是,将 ggplot 调用替换为:
ggplot(df, aes(x=X1, y=X2*1000,text=paste0("X1=",X1)))
无法生成平滑线,尽管它在鼠标悬停时达到预期效果。
这是一个错误吗?
有解决办法吗?
尝试将美学 text
放入 geom_point
的美学规范中。它应该让你自定义你的工具提示。尽管产生警告“警告:忽略未知美学:文本”,它仍会创建所需的工具提示。在plotly官方页面查看另一个example,在geom_point
的美学中使用text
。
df<-data.frame(replicate(2, sample(2000, size = 29, replace = TRUE)))
p <- ggplot(df, aes(x = X1, y = X2 * 1000)) +
geom_point(aes(text = paste0("X1=", X1, " X2=", X2, " Whatever needed"))) +
geom_smooth()
ggplotly(p, tooltip = "text")
编辑:geom_smooth
的工具提示
如果我们想显示 geom_smooth 的工具提示,我们需要一种不同的方法。我们需要 style()
函数来修改 plotly 对象中的跟踪属性值。
set.seed(1)
df <- data.frame(replicate(2, sample(2000, size = 29, replace = TRUE)))
p <- ggplot(df, aes(x = X1, y = X2 * 1000))
w <- ggplotly(p + geom_point() + geom_smooth())
text_1 <- paste0("Text geom_point:", "<br />", "X1=", w$x$data[[1]]$x, "<br />", "X2=", w$x$data[[1]]$y)
text_2 <- paste0("Text geom_smooth:", "<br />" , w$x$data[[2]]$text)
w %>%
style(text= text_1, traces = 1) %>%
style(text = text_2, traces = 2)