में साइडबार को दिखाने/छिपाने के बाद प्लॉट 100% चौड़ाई का आकार नहीं बदलता है मेरे पास एक प्लॉट है जो आर शाइन में दो-पैनल पृष्ठ के मुख्य पैनल में 100% चौड़ाई (डिफ़ॉल्ट) पर सेट है। एक टॉगल एक्शन बटन के माध्यम से साइडबार छिपाने योग्य है।आर चमकदार पृष्ठ
जब साइडबार दिखाई दे रहा है (डिफ़ॉल्ट), साजिश मुख्य पैनल की चौड़ाई भरती है। जब साइडबार छुपाया जाता है, तो मैं चाहता हूं कि साजिश अब उपलब्ध 100% स्पेस भरने के लिए विस्तार करे, यानी पूरी ब्राउज़र विंडो। लेकिन ऐसा नहीं होता! यह एक ही आकार रखता है।
library(shiny)
library(shinyBS)
UI <- fluidPage(
bsButton("showpanel", "Show/hide sidebar", type = "toggle", value = TRUE),
sidebarLayout(
conditionalPanel(condition = "input.showpanel == true",
sidebarPanel("This is my sidebar.")
),
mainPanel(plotOutput("plot", width = "100%"))
)
)
SERVER <- function(input, output) {
output$plot <- renderPlot({
plot(1:10, main = "The width of this plot adjusts\nto window resizes but not to\nshow/hide sidepanel!")
})
}
runApp(shinyApp(UI,SERVER))
अब तक प्रयास किया गया:
- यूआई फ़ाइल के भीतर से भूखंड वस्तु को परिभाषित करना, जैसा कि ऊपर।
- प्लॉट ऑब्जेक्ट को सर्वर फ़ाइल के भीतर से एक renderUI ऑब्जेक्ट के रूप में परिभाषित करना।
- इस प्रश्न से
tags$head(tags$style("#myplot{height:100vh !important;}"))
के अनुसार पृष्ठ में सीएसएस टैग सेट करें, Scaling shiny plots to window height।
संभव काम arounds:
- साजिश गतिशील और टॉगल बटन की स्थिति के आधार पर की चौड़ाई बनाओ। तब मैं साजिश बना सकता हूं उदा। साइडबार छिपा हुआ है जब 140% चौड़ाई। यह अच्छी तरह से सामान्यीकृत नहीं होता है, और
fluidPage
की अनुकूलता का उपयोग करने के बिंदु को खो देता है।
(fluidPage
लेआउट ब्राउज़र विंडो आकार पर निर्भर बदल जाता है। उदाहरण के लिए, यदि आप एक मोबाइल फोन के आकार के बारे अपने ब्राउज़र विंडो बनाना, यह मुख्य पैनल के ऊपर साइडबार स्थापित करेंगे।)
समस्या यह है कि साइडबार का उपयोग करके आप साइडबार के लिए कक्षा 'col-sm-4' के साथ दो बूटस्ट्रैप स्तंभ बनाते हैं और प्लॉट के लिए कक्षा' col-sm-8' के साथ एक है, यही कारण है कि आपकी साजिश फिर से नहीं होगी- ~ 66% स्क्रीन से बड़ा आकार। –