2017-05-11 3 views
0

Dans mon application brillante, mes utilisateurs sélectionnent n nombre d'attributs à tracer dans mon appel splom(), qui suit essentiellement ces étapes: (1) l'utilisateur choisit n nombre, (2) l'utilisateur choisit des variables, (3) (4) splom est appelée dans un appel très simple, similaire à: lplot < - splom (data_subset)comment emballer le texte dans le complot réactif de Splom?

Cependant, comme les panneaux avec splom() sont étiquetés sur la base de le nom de l'attribut (qui est réactif, donc je ne peux pas étiqueter à l'avance) et les noms sont très longs, vous ne pouvez pas les lire. Est-ce que quelqu'un sait s'il existe un moyen d'enrouler le texte dans les sorties du panneau splom? L'emballage serait fait sur la valeur réactive de l'attribut, donc ce ne serait pas fait sur une chaîne.

C'est ce que ma sortie ressemble: splom

Répondre

0

Après subsetting à l'étape 3 , vous pouvez manipuler les noms des sous-ensemble de données pour envelopper de manière appropriée.

## Subset the data in whatever way shiny does (here's a reproducible example) 
irisSub <- subset(iris, select = grepl("Width", names(iris))) 

Puis

  1. Remplacer "mot" séparateurs avec des espaces. Dans votre exemple, vous avez probablement juste besoin "_"

    names(irisSub) <- gsub("\\.|_", " ", names(irisSub)) 
    
  2. Wrap ces cordes à une largeur assez étroite. Vous devrez peut-être expérimenter avec d'autres largeurs ici.

    wrapList <- strwrap(names(irisSub), width = 10, simplify = FALSE) 
    
  3. Coller ces chaînes de retour avec un saut de ligne (\n) entre les deux et les attribuer aux noms des données sous-ensemble de

    names(irisSub) <- vapply(wrapList, paste, collapse = "\n", FUN.VALUE = character(1)) 
    
  4. splom devrait le respect la casse ligne

    splom(irisSub) 
    

    enter image description here