Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将alpha值指定给ggplot_R_Dataframe_Ggplot2_Shiny_Alpha - Fatal编程技术网

R 将alpha值指定给ggplot

R 将alpha值指定给ggplot,r,dataframe,ggplot2,shiny,alpha,R,Dataframe,Ggplot2,Shiny,Alpha,我有下面的代码,它的设置使得任何分配了$time“future”的行的alpha值为0.6,任何分配了$time“pass”的行的alpha值为1。这允许geom_栏中的值在“未来”数据上显示为略微透明,在“过去”数据上显示为完全实心 然而,我的问题是,当我的输入$date_范围在过去的两个日期之间时,我的所有几何图形_条现在的alpha值都是0.6(代码没有将特定的alpha值指定给特定的$time值,这是我想要的) 我尝试创建一个新的$alpha列,使用特定的整数作为alpha值,但它只是使

我有下面的代码,它的设置使得任何分配了$time“future”的行的alpha值为0.6,任何分配了$time“pass”的行的alpha值为1。这允许geom_栏中的值在“未来”数据上显示为略微透明,在“过去”数据上显示为完全实心

然而,我的问题是,当我的输入$date_范围在过去的两个日期之间时,我的所有几何图形_条现在的alpha值都是0.6(代码没有将特定的alpha值指定给特定的$time值,这是我想要的)

我尝试创建一个新的$alpha列,使用特定的整数作为alpha值,但它只是使我的“未来”数据非常不透明,我不知道为什么

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)

分配非常抱歉,我终于弄明白了。添加一个分配了alpha编号的$alpha列,然后将scale_alpha_identity()添加到我的ggplot中,最终实现了我的目标

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)

请尝试一个最小的可重复示例。听起来这个问题与闪亮无关,所以去掉所有闪亮的代码。然后分享一些数据。你说的“极度不透明”是什么意思?只是正常,不透明?@Gregor谢谢你的评论,因为你可能知道我是新来的。我用数据框的简写更新了我的数据。然而,我保留了闪亮的代码,以保持上下文中的内容。这更有帮助吗?至于“极度不透明”,我的意思是,在我试图将其保持在0.6的设置下,这些条几乎完全透明,这是一种改进。如果数据的代码是可复制/粘贴的,那就太好了。上面的链接和我的评论建议对此进行
dput
dput(head(allocated))
是共享可复制/粘贴数据的一种非常简单的方法。(或者除了
head(allocated)
之外的其他子集,足以说明问题)就我而言,如果您能将问题隔离到
ggplot
中,我可能会尝试解决它-我对ggplot很在行,尝试帮助您似乎又快又容易。如果你把它放在Shiny中,它看起来更复杂——我已经一年多没有使用Shiny了,而且它也没有安装在我的笔记本电脑上——所以我不会费心去解决它。也许其他人会这么做,但你把你的潜在答案限制在那些既擅长ggplot又擅长闪亮的人身上。@Gregor非常感谢你的建议。在我终于找到了解决问题的方法后,我发布了一个答案,但我肯定会在继续为这个论坛做贡献的同时,遵循你的说法。作为一个新开发人员,我正在努力学习如何正确地与他人合作,所以我真的很感激你的帮助,并且花时间考虑我的问题: