최종 사용자가 shiny로 빌드하고 배포 한 visNetwork 그래픽의 .png을 내보낼 수 있기를 바랍니다. 나는 renderVisNetwork
코드 끝에 visExport
줄을 사용하여이 작업을 수행 할 수 있지만 출력에 생성 된 단추 모양이 마음에 들지 않으며 단추 자체가 내 보낸 .png에 포함됩니다. .png 자체의 품질은 그다지 뛰어나지 않습니다. UI에서 downloadButton
에 의해 생성 된 버튼 모양이 마음에 들지만 서버 쪽에서 downloadHandler
과 관련된 문제가 발생합니다. 브라우저에서 실행되는 동안 다운로드 버튼을 클릭하고 다운로드 대화 상자를 표시하며 파일을 저장할 수 있지만 파일은 비어 있습니다 (파일 크기는 318 바이트). .pdf로 시도해도 작동하지 않습니다. 여기에 내 코드입니다 :shiny (R)에서 downloadHandler를 사용하여 visNetwork를 png로 내보내기하면 빈 파일이 생성됩니다.
ui.R :
downloadButton('ConDL', label='Download png')
server.R : 내가 대신 반응성의 기능을 가진 객체를 생성 여기에 대해 주어진 조언을 따랐습니다
# Create network
ConNet <- function(){
visNetwork(Nodes(), Edges()) %>%
#all the other stuff to create the network which works fine
}
# Draw visualization - works fine
output$ConNet <- renderVisNetwork({
ConNet()
})
# Download png of visualization - no errors displayed in browser or
# console when testing, but exports blank png
output$ConDL <- downloadHandler(
filename="Con.png",
content= function(file) {
png(file)
ConNet()
dev.off()
}
)
: Downloading png from Shiny (R). 이전 Conactive를 Connet으로 전환시키는 것은 효과가 없었습니다. 미리보기 창을 통해 실행하는 대신 브라우저 (Firefox)에서 앱을 열어두고 있습니다. 콘텐츠 섹션에서 print(ConNet())
을 시도해도 도움이되지 않습니다. 그래서 나는 무엇이 실종되었는지 확신하지 못합니다.
보너스 네트워크 생성시 visInteraction
으로 생성 된 탐색 버튼을 제외하도록 .png를 얻을 수 있다면 - 대화 형 부분에 유용하지만 정적 그래픽을 혼란스럽게합니다.
그래, 나는 그 링크를 얼마 전에 발견하고 궁극적으로 그 해결책에 정착했다. 내 보낸 그래픽은 실제로 훨씬 높은 품질이며 대화 형 버전에서는 필요하지 않지만 다운로드에 유용하거나 다운로드 버전에서 필요하지 않은 탐색 아이콘을 빼는 등의 제목을 추가하도록 코드를 수정할 수 있습니다. 유일한 단점은 .png 자체에서 여전히 작은 "Export as png"버튼을 얻지 만 다른 소프트웨어와 마찬가지로 충분히 쉽게자를 수 있다는 것입니다. – bcarothers
나는 고품질의 네트워크를 내보내는 아주 간단한 해결책을 발견했다. 네트워크를 html 페이지에 저장하면이 파일을 열 수 있습니다. 그 후 "오른쪽 클릭"과 "이미지 저장 ...". 놀라 울 정도로 해상도가 좋을 수도 있습니다. visExport O_O. –
하! 이 ^^^^ 진짜 대답입니다. 지옥, 나는 html로 먼저 저장할 필요조차 없다 - 앱 자체가 실행 중일 때 바로 마우스 오른쪽 버튼을 클릭하면 모든 불필요한 것들이 한 번에 제거된다. 최종 사용자가 이미지를 다운로드하기 위해 마우스 오른쪽 버튼을 클릭하도록 지시하는 UI의 코드 한 줄은 모든 것을 설정하기 위해 서버 쪽에서 60 줄 정도를 능가합니다. 감사! – bcarothers