Как создать текст при наведении курсора, не отключая geom_smooth? - PullRequest
0 голосов
/ 24 июня 2018

Код

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)))

не может получить сглаженную линию, хотя это и ожидается при наведении курсора мыши.

Это ошибка?

Есть ли обходной путь?

1 Ответ

0 голосов
/ 25 июня 2018

Попробуйте просто поместить эстетику text в эстетические характеристики geom_point.Это должно позволить вам настроить подсказку.Несмотря на выдачу предупреждения «Предупреждение: игнорирование неизвестной эстетики: текст», оно создаст нужную подсказку.Посмотрите другой пример на официальной официальной странице, используя text в эстетике geom_point.

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")

enter image description here

...