ggplotly crashes when AGG is required as graphical engine
オープン
まだ誰も着手していません。
- 主要言語
- R
- スター
- 2.7k
- フォーク
- 641
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
I'm developing Shiny apps in a platform, where the graphical engine in RStudio (browser version) needs to be AGG.
When making interactive plots with ggplotly the app crashes when running from RStudio with the following error message:
Listening on http://127.0.0.1:7615
Warning: Error in dev_fun: X11 is not available
106: dev_fun
105: gg2list
104: ggplotly.ggplot
103: ggplotly
102: %>%
101: renderPlotly [/PATH_TO_APP/app.R#77]
100: func
97: shinyRenderWidget
96: func
83: renderFunc
82: output$distggPlotly
1: runApp
The static plots in the app are working fine, but the plotly variant causes the problem (see below).
app.R file
library(shiny)
library(tidyverse)
library(plotly)
ui <- fluidPage(
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30)
),
mainPanel(
plotOutput("distPlot"),
plotOutput("distggPlot"),
plotlyOutput("distggPlotly")
)
)
)
server <- function(input, output) {
output$distPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white',
xlab = 'Waiting time to next eruption (in mins)',
main = 'Histogram of waiting times')
})
output$distggPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
faithful %>% ggplot(aes(x = waiting)) +
geom_histogram(breaks = bins, fill = 'darkgray', colour = 'white') +
labs(x = 'Waiting time to next eruption (in mins)',
title = 'Histogram of waiting times')
})
output$distggPlotly <- renderPlotly({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
gg_hist <- faithful %>% ggplot(aes(x = waiting)) +
geom_histogram(breaks = bins, fill = 'darkgray', colour = 'white') +
labs(x = 'Waiting time to next eruption (in mins)',
title = 'Histogram of waiting times')
gg_hist %>% ggplotly()
})
}
shinyApp(ui = ui, server = server)
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、RStudio の AGG グラフィックエンジンと ggplotly() の呼び出しを使って、提供された app.R の例から失敗を再現します。gg2list を通じて報告された X11 エラーを追跡し、Shiny アプリが X11 を必要とせずにインタラクティブなプロットをレンダリングできることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- r
- 領域
- data-visualization
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100