在R语言中使用Plotly绘制子图

3

我无法在R Markdown中使用plotly库获得饼图的并排子图。相反,它看起来像是一个饼图覆盖在另一个饼图上:

---
title: "Test Plotly Pie"
author: ""
date: ""
output:
   html_document:
      self_contained: no
---

```{r plotpie1, results='asis', tidy=FALSE, message=FALSE, fig.retina=NULL, echo=FALSE, out.width = "99%", out.height="750p[![enter image description here][1]][1]x"}

require(plotly)
require(dplyr)

p1 <- plot_ly(type="pie",values=c(5,954), height = 7,
        labels=c("Change","No Change"),textinfo="label", hoverinfo="all",
        textposition="outside",showlegend=F,marker=list(colors=c(
          "lightskyblue",
           "deepblue"
        ))) %>%
  layout(autosize = T)

p2 <- plot_ly(type="pie",values=c(15,1325), height = 7,
        labels=c("Change","No Change"),textinfo="label", hoverinfo="all",
        textposition="outside",showlegend=F,marker=list(colors=c(
          "lightskyblue",
           "deepblue"
        ))) %>%
  layout(autosize = T)

p4 <- suppressWarnings(subplot(
   p1,
   p2,
   margin=0.05))

p4

```

我在使用Windows 7 64位操作系统上的R 3.1.3 64位版本。我正在使用plotly包的版本为:2.0.16(于2015年12月中旬从Github下载)。


问题出在饼图和子图上,而不是Rmarkdown。 - MLavoie
正如我所猜测的那样...饼图类型在子图中不受支持吗?还是说你需要以不同的方式调用子图中的饼图? - R_User123456789
“饼图类型在subplot中不支持”,看起来是这样的。也许其他人会想出解决方案,线图和点图都可以正常工作。饼图实际上没有x轴和y轴... - MLavoie
@MLavoie:所以我采用了你在这里的答案(https://dev59.com/gZPfa4cB1Zd3GeqPCmWC)来修改我的边距,然后我将out.width和height改为更小的百分比,然后在样式标签中加入了“float:left;position:relative”,这是目前为止最好的答案...虽然当我这样做时效果很棒。感谢你的帮助! - R_User123456789
我很高兴我有用 :-) 你应该发布你的答案给未来的读者!人们并不总是会查看评论。 - MLavoie
1个回答

2

如MLavoie所建议的那样,我将添加一个答案,以防有人发现它有用...

```{r message=FALSE, warning=FALSE}
library(plotly)
p <- plot_ly(x = rnorm(1000), y = rnorm(1000), mode = "markers")
```

<div>
 <div style = "float:left">
 ```{r echo = F, fig.width = 4, fig.height = 4}
 p
 ```
 </div>

 <div style = "float:right">
 ```{r, echo = F, fig.width = 4, fig.height = 4}
 p
 ```
 </div>
</div>

我有同样的问题。然而,MLovie或@royr2的解决方案都不起作用。那是R语言的代码吗?我不理解这段代码。 - sar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接