2017-08-01 11 views
-1

私は次のコードを持っています。$ future "に割り当てられた行は" 0.6 "、割り当て済みの$ time" past "にはアルファが1になるように設定されています。私のgeom_barの値は、私の "未来"のデータではやや透過的で、私の "過去"のデータでは完全に固いものとして表示することができます。ggplotにアルファ値を代入する

しかし、私の入力$ date_rangeが過去に2つの日付の間にあるとき、すべてのgeom_barsは0.6のアルファになります(コードは特定の$値に特定のアルファ値を割り当てていません。私が望むもの)。

私はそれだけで非常に不透明な私の「未来」のデータを作り、私がなぜ...

allocated <- Project  Date  value  time 
       A   2017-05-15 4   past 
       B   2017-06-18 8   past 
       C   2017-07-25 3   past 
       D   2017-08-20 9   future 
       E   2017-09-14 4   future 



ui <- dashboardPage(
dashboardSidebar(
sidebarMenu(

    menuItem(
    dateRangeInput('date_range', label = "Date Range",format = "mm/dd/yyyy", start = Sys.Date()-17, end = Sys.Date()+17, startview = "month", weekstart = 0, separator = " to ", width = 200) 
) 
) 
), 

fluidRow(
    box(plotOutput("plot1", width = 1000, height = 500)) 
) 
) 


server <- function(input, output) { 

    output$plot1 <- renderPlot({ 

date_data <- reactive({ 
    subset(allocated, variable >= input$date_range[1] & variable <= input$date_range[2], value != 0) 
}) 



    ggplot(data = date_data(), aes(x = variable, y = value, alpha = time, fill = Project)) + 
    geom_bar(stat = 'identity') + 
    scale_alpha_discrete(range = c(0.6, 1), guide = 'none') 
    }) 
} 


shinyApp(ui, server) 
+2

**最小**再現可能な例を試してください。それは問題がShinyと何か関係があるようには聞こえませんので、すべてのShinyコードを取り除いてください。次に、いくつかのデータを共有します。 [データの共有に関するヒントについてはこちらをご覧ください(ビルトインデータを使用する、データをシミュレートするためにコードを共有する、 'dput()'を使用する)](https://stackoverflow.com/questions/5963269/how-to-make- a-great-r-reproducible-example)を使用します。そして、「極端に不透明」とはどういう意味ですか?ちょうど普通の、透明ではない? – Gregor

+0

@Gregorコメントはありがとうございます。私はこのサイトを初めて知りたいと思うかもしれません。私は私のデータフレームの略記で私が持っているものを更新しました。しかし、私は文脈に物事を保つために光るコードを保った。これはもっと役に立ちましたか? "extremeley opaque"に関して、私が意味していたのは、バーがほぼ完全に透明になっていたことです.0.6の設定の下で、私はそれらを維持しようとしました。 – Naji

+0

改善です。あなたのデータのコードがコピー/ペースト可能であれば本当にいいですね。上記のリンクと私のコメントは、これについて 'dput'を提案します。 'dput(head(allocated))'はコピー/ペースト可能なデータを簡単に共有するのに便利です。 (または頭に(割り当てられた) '、問題を説明するのに十分な他のサブセット) – Gregor

答えて

1

わからないが、私はアルファ値として使用する特定の整数値を持つ新しい$アルファ列を作成してみましたすみません、私はついにそれを理解しました。割り振られたアルファの列にアルファ番号が割り当てられているのを確認してから、私のggplotにscale_alpha_identity()

allocated <- Project  Date  value  time  alpha 
       A   2017-05-15 4   past  1 
       B   2017-06-18 8   past  1 
       C   2017-07-25 3   past  1 
       D   2017-08-20 9   future  0.6 
       E   2017-09-14 4   future  0.6 



ui <- dashboardPage(
dashboardSidebar(
sidebarMenu(

    menuItem(
    dateRangeInput('date_range', label = "Date Range",format = "mm/dd/yyyy", start = Sys.Date()-17, end = Sys.Date()+17, startview = "month", weekstart = 0, separator = " to ", width = 200) 
) 
) 
), 

fluidRow(
    box(plotOutput("plot1", width = 1000, height = 500)) 
) 
) 


server <- function(input, output) { 

    output$plot1 <- renderPlot({ 

date_data <- reactive({ 
    subset(allocated, variable >= input$date_range[1] & variable <= 
input$date_range[2], value != 0) 
}) 



    ggplot(data = date_data(), aes(x = variable, y = value, alpha = alpha, fill = Project)) + 
    geom_bar(stat = 'identity') + 
    scale_alpha_identity() 
    }) 
} 


shinyApp(ui, server) 
+0

良い仕事が分かりました! – Gregor

関連する問題