2017-08-14 156 views
0

我在我的Shiny应用程序中绘制了多个饼图,我似乎无法移动它们以使它们适合在同一行中。我可以通过在.css文件中改变位置或使用absolutePanel()来移动它们,但是任一选项都会让我在底部留下一大块空白空间。我无法从我的应用程序发布代码,所以我做了一个小例子,我尝试使用column()函数移动无效。任何帮助,将不胜感激。在我的实际应用程序中,我有大约5张图,所以空白的数量非常大,我希望解决它。这可能是一个简单的答案,但包涵家伙IM对于新手...如何将两个密谋图放在一行?

library(shiny) 
library(plotly) 


ui = fluidPage(
    plotlyOutput("graph1",width="40%",height="350px"), 
    column(width=12,offset=4,plotlyOutput("graph2",width="40%",height="350px")) 
) 
server = function(input, output,session) { 



    output$graph1<-renderPlotly({ 

    USPersonalExpenditure <- data.frame("Categorie"=rownames(USPersonalExpenditure), USPersonalExpenditure) 
    data <- USPersonalExpenditure[,c('Categorie', 'X1960')] 

    p <- plot_ly(data, labels = ~Categorie, values = ~X1960, type = 'pie') %>% 
     layout(title = 'Graph 1', 
      xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE), 
      yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE)) 

    }) 
    output$graph2<-renderPlotly({ 
    USPersonalExpenditure <- data.frame("Categorie" = rownames(USPersonalExpenditure), USPersonalExpenditure) 
    data <- USPersonalExpenditure[, c('Categorie', 'X1960')] 

    colors <- c('rgb(211,94,96)', 'rgb(128,133,133)', 'rgb(144,103,167)', 'rgb(171,104,87)', 'rgb(114,147,203)') 

    p <- plot_ly(data, labels = ~Categorie, values = ~X1960, type = 'pie', 
       textposition = 'inside', 
       textinfo = 'label+percent', 
       insidetextfont = list(color = '#FFFFFF'), 
       hoverinfo = 'text', 
       text = ~paste('$', X1960, ' billions'), 
       marker = list(colors = colors, 
           line = list(color = '#FFFFFF', width = 1)), 
       #The 'pull' attribute can also be used to create space between the sectors 
       showlegend = FALSE) %>% 
     layout(title = 'Graph 2', 
      xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE), 
      yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE)) 

    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 

回答

1

你可以尝试使用fluidRow和段通过列如下。列的空间是基数12,所以在一个fluidRow内的两个column(6,..)调用会将您分成两部分。下面的示例分为4个部分。我不清楚“底部的空白区域”问题是由你描述的,所以这可能不是你要解决的问题。

ui = fluidPage(
fluidRow(
    column(3, 
      plotlyOutput("graph1") 
      ), 
    column(3, 
      plotlyOutput("graph2") 
      ), 
    column(3, 
      plotlyOutput("graph3") 
      ), 
    column(3, 
      plotlyOutput("graph4") 
      ) 
) 
) 
+0

非常感谢你,我知道这将是一件容易的事情。非常感谢joelnNc –