2017-12-06 2 views
2

Nicht sicher, ob Rs Funktion plot_ly diese Fähigkeit hat (ich konnte es nicht finden), aber ich dachte, ich würde fragen). Plot_ly hat einen paper_bgcolor Parameter hat, die die Farbe des Papiers ändert, dass die Handlung auf, die als solche:Paper border on plotly R-Grafik

mydf = data.frame(x = 1:5, y = 1:5) 

plot_ly(mydf) %>% 
    add_trace(x = ~x, y = ~x, type = 'scatter', mode = 'markers', 
      marker = list(size = 24)) %>% 
    layout(paper_bgcolor = 'red') 

Ich bin nicht daran interessiert in die Papierfarbe zu ändern, sondern das Papier Grenze. Das heißt, ich möchte eine rote Box um den äußeren Rand des Papiers. Kennt jemand einen einfachen Weg, dies zu tun?

EDIT - ich glaube, ich muss das Raster-Paket für diese/es mit Gitter getan werden könnte, aber ich bin neugierig zuerst, ob es möglich ist, ohne dass der ein anderes Paket verwenden kann.

Antwort

1

Eine Möglichkeit wäre, die von Plotly verwendete CSS-Datei zu ändern.

  • den Standort Ihres Verzeichnis finden

    p <- plot_ly() 
    p$dependencies[[4]]$src$file 
    
  • Ausgang der plotly-min.js und die CSS-Datei zu speichern:

    1 „/ dass// my/Verzeichnis/Dokumente/R/win-Bibliothek/3,4/plotly/htmlwidgets/lib/plotlyjs“

  • Gehen Sie in dieses Verzeichnis und kopieren Sie plotly-htmlwidgets.css in eine neue Datei, z. plotly-htmlwidgets_red.css

  • Fügen Sie die folgenden Zeilen in die neue Datei

    div.svg-container { 
        outline:5px solid red; 
    } 
    
  • plotly Sagen Sie Ihre neue CSS-Datei

    p <- plot_ly() 
    p$dependencies[[4]]$stylesheet <- "plotly-htmlwidgets_red.css" 
    

Ergebnis

verwenden 0

+0

Danke für den kreativen Vorschlag. Ich bin ziemlich sicher, dass die Funktion von plotly selbst keinen Parameter für das hat, was ich will, ich habe in den Dokumenten ein bisschen danach gesucht. Ich denke, es gibt wahrscheinlich einen besseren Ansatz hier, wenn ich das Grid-Paket verwende, aber ich stimme zu, dass es die Arbeit erledigt. – Canovice