2016-08-17 10 views
2

Ich erstelle ein Plot mit .html Format. Das Grundstück hat einen schwarzen Hintergrund und ich frage mich, wie ich den weißen Rand auf schwarz umstellen kann?R Plotly: Wie ändert man die Farbe der äußeren Grenze?

Ich bemerke, dass, wenn ich die Dimension des Diagramms definieren (Autoscale ist auf FALSE festgelegt), gibt es eine Menge Leerraum außerhalb.

Vielen Dank.

Entschuldigung dafür, dass ich kein Beispiel gepostet habe, dies ist meine erste Zeitangabe.

Hier ist ein einfaches Beispiel:

labels = paste((data/sum(data))*100,"%") 

values = c(53, 43, 77, 33) 

p1 = plot_ly(labels=labels, 
      values=values, 
      type="pie", 
      hoverinfo = "label+percent", 
      showlegend = FALSE, 
      sort = FALSE 
) 

p1 = layout(p1, 
      paper_bgcolor="rgb(31,31,31)", 
      plot_bgcolor="rgb(31,31,31)", 
      legend = list(font = list(color = "white"), 
          bgcolor = "transparent"), 
      autosize = T, 
      xaxis = list(
       color = "transparent" 
      ), 
      yaxis = list(
       color = "transparent" 
      ) 
) 

p1 

Plotly Kreisdiagramm Plotly Pie Chart

Dies ist ein Screenshot von dem Grundstück. Wie Sie sehen können, gibt es einen dünnen weißen Rand um das Grundstück herum.

+0

Sie ein Codebeispiel – warunapww

+0

bieten ein reproduzierbares Beispiel zur Verfügung stellen müssen, wenn Sie helfen wollen –

Antwort

1

Ich nehme an, dass dies ein Fehler in plotly ist. Wenn ich die erstellte HTML inspizieren es zeigt folgendes:

<body style="margin: 5px; padding: 0px; overflow: hidden; width: 100%; height: 100%; background-color: white;"> 
<div id="htmlwidget_container" style="position: absolute; top: 5px; right: 5px; bottom: 5px; left: 5px;"> 
<div id="htmlwidget-3128" class="plotly html-widget html-widget-static-bound js-plotly-plot" style="width: 100%; height: 100%;"> 

<div class="plot-container plotly"><div class="svg-container" style="position: relative; width: 1270px; height: 403px;"> 

[...] 

Das heißt, die tatsächliche plotly Behälter in einem Widget-Container mit 5px eingebettet.

Jetzt wollen, wenn Sie Ihr ein html verschönern, ändern Sie die Anfang-Tags auf die folgenden:

<body style="margin: 0px; padding: 0px; overflow: hidden; width: 100%; height: 100%; background-color: white;"> 
<div id="htmlwidget_container" style="position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px;"> 

Wenn Sie alle profitieren möchten, melden Sie dies zusätzlich als Fehler bei plotlys Projektseite über.

+0

Thank you very much. Ich habe es versucht und es funktioniert, aber da ich Tausende dieser HTML-Dateien erzeuge, gibt es eine Möglichkeit, sie automatisch zu ändern? –

1

Zusätzlich `@Nikolay s

beantworten Wenn Ihr wollen einige Stile ändern sich plotly in Sie es verwenden, wie dann htmlwidget umwandeln kann:

library(plotly) 
values = c(53, 43, 77, 33) 
labels = paste((values/sum(values))*100,"%") 


p1 = plot_ly(labels=labels, 
      values=values, 
      type="pie", 
      hoverinfo = "label+percent", 
      showlegend = FALSE, 
      sort = FALSE 
) 
style(p1,'#htmlwidget_container{ 
      position: absolute; 
     top: 0px; right: 0px; bottom: 0px; left: 0px; 
     }') 

p1 = layout(p1, 
      paper_bgcolor="rgb(31,31,31)", 
      plot_bgcolor="rgb(31,31,31)", 
      legend = list(font = list(color = "white"), 
          bgcolor = "transparent"), 
      autosize = T, 
      xaxis = list(
       color = "transparent" 
      ), 
      yaxis = list(
       color = "transparent" 
      ) 

) 

library(htmltools) 
library(htmlwidgets) 

p2=as.widget(p1) 
appendContent(p2,tags$head(tags$style(' 
      #htmlwidget_container{ 
      position: absolute !important; 
      top: 0px !important; 
      right: 0px !important; 
      bottom: 0px !important; 
      left: 0px !important; 
            }'))) 
1

Klingt wie Sie eine andere Standard wollen in der Größenrichtlinie für htmlwidget. Probieren Sie etwas wie folgt aus:

p1$sizingPolicy$padding <- 0 
Verwandte Themen