r - 如何在闪亮的情况下改变绘图的背景颜色?
问题描述
我想知道是否可以更改或至少使其透明以允许继承其父背景,我已经尝试过background-color
:plot
用户界面:
plotOutput("scatterChart",
width = "80%",
height = "294px")
服务器:
output$scatterChart <- renderPlot({
par(bg = "yellow")
plot(rules(), col = rainbow(25), cex = input$cex)
})
如此处所示:https ://stat.ethz.ch/pipermail/r-help/2003-May/033971.html
但没有任何改变。
我用 css 试过了:
#scatterChart{
background-color:red}
我没有得到预期的结果。
或者 :
.shiny-plot-output{
background-color:red
}
这改变了整个 div 背景,我什至看不到情节本身(我期待着)。
这是一张图片: 演示
编辑:
根据thothal给我的例子,我发现问题出在传递给绘图函数的数据上(它只是一些association rules
使用Apriori
算法获得的):
rules <- reactive({
head(read.csv(input$file$datapath), input$visualization)
transactions = read.transactions(
file = file(input$file$datapath),
format = "basket",
sep = ","
)
minValue <- min(length(transactions),input$visualization)
rules <-
apriori(transactions[0:minValue],
parameter = list(
support = input$min_supp,
confidence = input$min_conf
))
return(rules)
})
任何建议或意见将不胜感激。谢谢。
解决方案
实际上,您可以像这样简单地更改绘图的背景颜色
library(shiny)
ui <- fluidPage(plotOutput("p"), actionButton("go", "Go"))
server <- function(input, output) {
output$p <- renderPlot({
input$go
par(bg = "navyblue")
x <- rnorm(100)
plot(x, 5 * x + rnorm(100, sd = .3), col = "white")
})
}
shinyApp(ui, server)
这会在我的机器上生成以下图:
当您尝试相同时,我想知道如果您尝试在外部创建情节会发生什么情况,shiny
它是否显示(通过相应的par
调用)彩色背景?
也许您应用程序中的其他一些设置可能会覆盖此行为。你能试着运行我的代码看看会发生什么吗?
如果您使用另一个绘图库(ggplot
例如),您必须适应和使用
theme(plot.background = element_rect(...), # plotting canvas
panel.background = element_rect(...)) # panel
更新
事实证明,罪魁祸首是arulesViz:::plot.rules
基于网格并忽略通过设置的设置par
。要获得彩色背景,我们必须rect
在右侧添加一个填充viewport
。
我分叉了原始存储库并提供了一个快速修复:
devtools::install_github("thothal/arulesViz@add_bg_option_scatterplot")
data(Groceries)
rules <- apriori(Groceries, parameter=list(support=0.001, confidence=0.8))
## with my quick fiy you can now specify a 'bg' option to 'control'
plot(rules, control = list(bg = "steelblue")
推荐阅读
- typo3 - Typo3 损坏:前端/后端空白页,即使在恢复备份后也没有错误
- orbeon - 注销不适用于 DIGEST 身份验证
- python - 如何计算二维列表中相邻的元素数量
- html - 如何将标题文本放在另一个标题后面?(见图)
- python - 在元组列表的每个元组末尾添加列表元素
- python - 选择 NumPy 数组范围,包括最后一个元素
- javascript - 这是将多级深度对象数组转换为简洁对象数组的好方法吗?
- cython - 如何遍历其他结构中包含的对象并调用它们的方法(让 Cython 知道它们)?
- linux-kernel - 正式的 Linux 内核内存模型
- python - 502 Bad Gateway:注册的端点未能处理请求。: Python