আমি চকচকে দিয়ে একটি প্লট সংরক্ষণ করতে ডাউনলোডবটন কীভাবে ব্যবহার করব তা জানার চেষ্টা করছি। প্যাকেজের উদাহরণটি .csv সংরক্ষণ করতে ডাউনলোডবটন / ডাউনলোডহ্যান্ডলার প্রদর্শন করে। আমি তার ভিত্তিতে একটি পুনরুত্পাদনযোগ্য উদাহরণ তৈরি করতে যাচ্ছি।
জন্য ui.R
shinyUI(pageWithSidebar(
headerPanel('Downloading Data'),
sidebarPanel(
selectInput("dataset", "Choose a dataset:",
choices = c("rock", "pressure", "cars")),
downloadButton('downloadData', 'Download Data'),
downloadButton('downloadPlot', 'Download Plot')
),
mainPanel(
plotOutput('plot')
)
))
জন্য server.R
library(ggplot2)
shinyServer(function(input, output) {
datasetInput <- reactive({
switch(input$dataset,
"rock" = rock,
"pressure" = pressure,
"cars" = cars)
})
plotInput <- reactive({
df <- datasetInput()
p <-ggplot(df, aes_string(x=names(df)[1], y=names(df)[2])) +
geom_point()
})
output$plot <- renderPlot({
print(plotInput())
})
output$downloadData <- downloadHandler(
filename = function() { paste(input$dataset, '.csv', sep='') },
content = function(file) {
write.csv(datatasetInput(), file)
}
)
output$downloadPlot <- downloadHandler(
filename = function() { paste(input$dataset, '.png', sep='') },
content = function(file) {
ggsave(file,plotInput())
}
)
})
যদি আপনি এই প্রশ্নের উত্তর দিচ্ছেন, আপনি সম্ভবত এটির সাথে পরিচিত, তবে এই কাজটি পেতে, উপরেরটি পৃথক স্ক্রিপ্টগুলিতে ( ui.R
এবং কার্যকারী ডিরেক্টরিতে server.R
একটি ফোল্ডারে foo
) সংরক্ষণ করুন the চকচকে অ্যাপ্লিকেশন চালানোর জন্য, চালনা করুন runApp("foo")
।
ব্যবহার করে ggsave
, আমি একটি ত্রুটি বার্তা পেয়েছি যা ইঙ্গিত করে যে ggsave filename
ফাংশনটি ব্যবহার করতে পারে না (আমার মনে হয়)। যদি আমি স্ট্যান্ডার্ড গ্রাফিক্স ডিভাইসটি (নীচের মত) Download Plot
ব্যবহার করি তবে কোনও ত্রুটি ছাড়াই কাজ করে তবে গ্রাফিকটি এটি লেখেন না।
প্লট লেখার জন্য হ্যান্ডলার কাজ করার জন্য কোনও পরামর্শই প্রশংসিত হবে।
ggsave(file, plotInput(), device = png)
কোনও ডিভাইস (মোড়ক) ফাংশন তৈরির পরিবর্তে কেবল ব্যবহার করতে পারেন ।