всплывающая подсказка с именами в сюжете PCA - PullRequest
1 голос
/ 19 февраля 2020

Я хочу создать интерактивный график с помощью ggplotly (). Во всплывающей подсказке должно быть указано имя переменной.

interactive <- ggplotly(pca,dynamicTicks = T,tooltip = c("x","y",label = list))

pca - это визуализация PCA. sub - это data.frame, содержащий имена переменных.

sub <- PCA(dataframe)

pca <- fviz_pca_ind(sub, pointsize = "cos2", 
             pointshape = 21, fill = "#E7B800",
             repel = TRUE, # Avoid text overlapping (slow if many points)
             geom = c("text","point"), 
             xlab = "PC1", ylab = "PC2",label = animal_list
             )

dataframe содержит имена переменных, и я хочу, чтобы в интерактивном режиме они отображались в подсказке. tooltip = мне не очень помогает и изменение свойств в pca_individuals (например, с label= или что-то не работает тоже. Спасибо за вашу любезную поддержку. Я действительно ценю ваше поведение altruisti c.

Для играть (фактический кадр данных намного больше):

dataframe <- data_frame("c1"=c(78,89,0),"c2"=c(89,89,34),"c3"=c(56,0,4))

1 Ответ

2 голосов
/ 21 февраля 2020

Вы можете вручную сделать содержимое подсказок следующим образом:

library(factoextra)
library(plotly)
library(FactoMineR)

dataframe <- 
  data.frame("c1"=c(78,89,0),"c2"=c(89,89,34),"c3"=c(56,0,4))
res.pca <- PCA(dataframe)

pca <- fviz_pca_ind(res.pca, pointsize = "cos2", 
                    pointshape = 21, fill = "#E7B800",
                    repel = TRUE, 
                    geom = c("text","point"), 
                    xlab = "PC1", ylab = "PC2")

ggly <- ggplotly(pca)
bggly <- plotly_build(ggly)
bggly$x$data[[1]]$text <- 
  with(pca$data, paste0("name: ", name, 
                        "</br></br>x: ", x, 
                        "</br>y: ", y, 
                        "</br>coord: ", coord, 
                        "</br>cos2: ", cos2, 
                        "</br>contrib: ", contrib))

bggly
...