闪亮,R:复选框,geom_hline,ggplot
Shiny, R: Check box, geom_hline, ggplot
在我闪亮的应用程序中,我想在我的 ggplot
中添加一个 geom_hline 只有当用户选择使用复选框这样做时,我还希望用户设置 yintercept
与 numericInput
。
我相信有一个简单的解决方案,但由于我不是编码员,我想问一下哪种方法最简单。
我的代码是这样的:
在UI中:
numericInput('hline', label ='Limits', 0)
在服务器中:
plotInput <- reactive({
ggplot(data = dataforplot(), aes(x = ID_Polymer, y = value), position = position_dodge(width = 1)) +
geom_bar(aes_string( fill=razeni()), position = position_dodge(width = 1), stat="identity", color="white")+
theme_minimal() +
theme(legend.text=element_text(size=21))+
theme(text = element_text(size=21))+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
ggtitle(input$title_text_box_id) +
geom_hline(aes(yintercept = input$hline, linetype = "Minimal limit"), color='red', size=0.4)+
labs(x = "", y = input$ylabel_text_box_id) +
geom_text(aes(x = ID_Polymer, y = value,Group=Polymer,label=value),
position = position_dodge(width = 1),vjust=2, size=5,colour = "white", fontface = "bold") +
scale_fill_tableau("Tableau 10")+
scale_x_discrete(labels=c(xpopisky()))#puts a reactive in x labels
})
哪个有效,只是我不知道告诉闪亮 "show the geom_hline
only when I tell you by checking the checkbox" 的最佳方法,我相信应该涉及 if else
循环。
非常感谢任何建议!
您可以将 ggplot 对象分配给变量。以下伪代码对此进行了演示:
p = ggplot(data = ......) +
geom_bar(....) +
theme(....)
if(input$hline){
p = p + geom_hline(....)
}
请注意,如果您提供了一个最小的工作示例,您的问题将会得到改进。现在,您问题中的代码包含不相关的细节(例如 ggplot 主题和标签),不能 运行 原样。
在我闪亮的应用程序中,我想在我的 ggplot
中添加一个 geom_hline 只有当用户选择使用复选框这样做时,我还希望用户设置 yintercept
与 numericInput
。
我相信有一个简单的解决方案,但由于我不是编码员,我想问一下哪种方法最简单。
我的代码是这样的:
在UI中:
numericInput('hline', label ='Limits', 0)
在服务器中:
plotInput <- reactive({
ggplot(data = dataforplot(), aes(x = ID_Polymer, y = value), position = position_dodge(width = 1)) +
geom_bar(aes_string( fill=razeni()), position = position_dodge(width = 1), stat="identity", color="white")+
theme_minimal() +
theme(legend.text=element_text(size=21))+
theme(text = element_text(size=21))+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
ggtitle(input$title_text_box_id) +
geom_hline(aes(yintercept = input$hline, linetype = "Minimal limit"), color='red', size=0.4)+
labs(x = "", y = input$ylabel_text_box_id) +
geom_text(aes(x = ID_Polymer, y = value,Group=Polymer,label=value),
position = position_dodge(width = 1),vjust=2, size=5,colour = "white", fontface = "bold") +
scale_fill_tableau("Tableau 10")+
scale_x_discrete(labels=c(xpopisky()))#puts a reactive in x labels
})
哪个有效,只是我不知道告诉闪亮 "show the geom_hline
only when I tell you by checking the checkbox" 的最佳方法,我相信应该涉及 if else
循环。
非常感谢任何建议!
您可以将 ggplot 对象分配给变量。以下伪代码对此进行了演示:
p = ggplot(data = ......) +
geom_bar(....) +
theme(....)
if(input$hline){
p = p + geom_hline(....)
}
请注意,如果您提供了一个最小的工作示例,您的问题将会得到改进。现在,您问题中的代码包含不相关的细节(例如 ggplot 主题和标签),不能 运行 原样。