2016-07-26 49 views
0

我想在plotly包中使用subplot函数在单行中安排两个饼图,但结果图并非我所期望的。我能够为折线图等做同样的事情,但我面临着在单行中绘制两个饼图的麻烦。以下是我的代码。在一行中的多个阴谋饼图

ds_r <- data.frame(labels = c("Baseline", "DTC", "Detailing", "Flex"), 
       values = c(63.5, 8.5, 20.6, 7.4)) 

ds_l <- data.frame(labels = c("Baseline"), 
       values = c(100)) 

plot_right <- plot_ly(ds_r, labels = labels, values = values, type = "pie") %>% 
    layout(title = "Sales - Decomposed") 

plot_left <- plot_ly(ds_l, labels = labels, values = values, type = "pie") %>% 
    layout(title = "Total Sales") 

subplot(plot_left, plot_right, nrows = 2) 

输出是

enter image description here

如果在图像的底部检查红色方框,有两套轴,这意味着有两个地块,但他们很可能得到重叠或者其他的东西。

我希望输出是没有任何轴的单行中的两个饼图。任何帮助或方向?

回答

1
library(plotly) 
ds_r <- data.frame(labels1 = c("Baseline", "DTC", "Detailing", "Flex"), 
        values1 = c(63.5, 8.5, 20.6, 7.4)) 

ds_l <- data.frame(labels2 = c("Baseline"), 
        values2 = c(100)) 
df <- cbind(ds_r, ds_l) 

plot_ly(df, labels = labels1, values = values1, type = "pie", 
     domain = list(x = c(0, 0.4)), showlegend = F) %>% 

    add_trace(labels = labels2, values = values2, type = "pie", 
      domain = list(x = c(0.6, 1)), showlegend = F) 

我会添加图片,但情节通常是大型文件。

+0

谢谢。这是一个好方法。将帮助我取得进展,但没有办法做到这一点与我认为是更多的明星向前和一致 –

+1

我不这么认为。我认为subplots主要用于对齐折线图或散点图,它们根据某些因素的级别进行分组。 – shayaa

1

plotly的开发版本中有新的改进的subplot功能,但看起来“错误”仍然存在。我不确定它与饼图的效果如何。我在Github上提交了一个issue

# devtools::install_github('ropensci/plotly") 

library(plotly) 
ds_r <- data.frame(labels1 = c("Baseline", "DTC", "Detailing", "Flex"), 
        values1 = c(63.5, 8.5, 20.6, 7.4)) 

ds_l <- data.frame(labels2 = c("Baseline"), 
        values2 = c(100)) 

p <- plot_ly(ds_r, labels = ~labels1, values = ~values1, type = "pie", 
      showlegend = F) 

p2 <- plot_ly(ds_l,labels = ~labels2, values = ~values2, type = "pie", 
      showlegend = F) 

subplot(p, p2, nrows = 1) 

更多细节上subplot,请参阅subplot vignette