R Plotly:如何改变外边框的颜色?

时间:2016-08-17 01:42:03

标签: r plotly

我正在创建一个.html格式的图。情节有黑色背景,我想知道如何将白色边框改为黑色?

我注意到如果我定义绘图的维度(自动缩放设置为FALSE),那么外面会有很多空白。

非常感谢。

很抱歉没有发布示例,这是我第一次发帖。

这是一个简单的例子:

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饼图 Plotly Pie Chart

这是情节的截图。如你所见,情节周围有一个薄薄的白色边框。

3 个答案:

答案 0 :(得分:2)

听起来你想在htmlwidget大小调整策略中使用不同的默认值。尝试这样的事情:

p1$sizingPolicy$padding <- 0

答案 1 :(得分:1)

我认为这是一个故事情节。 当我检查创建的html时,它显示以下内容:

<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;">

[...]

这意味着,实际的plotly容器嵌入在一个5px的小部件容器中。

现在,如果您只想美化一个html,请将开头标记更改为以下内容:

<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;">

如果您希望每个人都能获利,请在plotlys项目页面上另外报告此错误。

答案 2 :(得分:1)

除了@Nikolay的回答

如果你想在剧情中改变一些风格你可以将其转换为htmlwidget然后使用如下:

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;
                                  }')))