web-dev-qa-db-fra.com

Comment donner des sous-titres pour une sous-parcelle dans plot_ly en utilisant R

Je me demande comment donner des sous-titres de différence pour les sous-parcelles à l'aide de plot_ly. Toute allusion s'il vous plaît. J'ai un titre BB dans ce cas. Merci.

p <- subplot(
      plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE, title="AA"),
      plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE, title="BB"),
margin = 0.05
) 
13
yuxu zi

L'attribut title de la présentation fait référence au titre de la totalité de la surface de traçage. Cependant, nous pouvons utiliser des annotations textuelles pour créer des "titres" pour vos sous-graphes, par exemple:

p <- subplot(
  plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE),
  plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE),
  margin = 0.05
) 
p %>% layout(annotations = list(
 list(x = 0.2 , y = 1.05, text = "AA", showarrow = F, xref='paper', yref='paper'),
  list(x = 0.8 , y = 1.05, text = "BB", showarrow = F, xref='paper', yref='paper'))
)
14
d-roy

Au lieu de positionner "à la main" (c'est-à-dire la réponse de @ d-roy), vous pouvez maintenant utiliser la capacité de subplot() pour repositionner le papier, par exemple les annotations (ainsi que les formes, les images, etc.).

library(plotly)
library(dplyr)

my_plot <- . %>% 
  plot_ly(x = ~date, y = ~value) %>%
  add_annotations(
    text = ~unique(variable),
    x = 0.5,
    y = 1,
    yref = "paper",
    xref = "paper",
    xanchor = "middle",
    yanchor = "top",
    showarrow = FALSE,
    font = list(size = 15)
  )

economics_long %>%
  group_by(variable) %>%
  do(p = my_plot(.)) %>%
  subplot(nrows = NROW(.), shareX = TRUE)
5
Carson

J'ai pu utiliser le schéma layout (annotations ()) non pas sur subplot () mais sur les objets plot_ly eux-mêmes. Cela donne un meilleur placement pour la visualisation dynamique. Donc, pour retravailler la réponse de @ d-roy:

p <- subplot(
  plot_ly(economics, x = date, y = uempmed) %>% 
     layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F, 
xref='paper', yref='paper'), 
     showlegend = FALSE),
  plot_ly(economics, x = date, y = unemploy) %>% 
     layout(annotations = list(x = 0.2 , y = 1.05, text = "AA", showarrow = F, 
xref='paper', yref='paper'), 
     showlegend = FALSE),showlegend = FALSE))`. 

Veuillez noter que dans ce cas, les coordonnées des annotations sont les mêmes pour chaque annotation car elles font référence à chaque sous-parcelle et non à la parcelle combinée dans son ensemble. 

1
Adnan Hajizada