R闪亮和ggplot2:如何使几何图形的边框透明?
我想使geom_col的边界透明。仅当使用ggplot2时,此选项有效:R闪亮和ggplot2:如何使几何图形的边框透明?,r,ggplot2,shiny,transparency,geom-col,R,Ggplot2,Shiny,Transparency,Geom Col,我想使geom_col的边界透明。仅当使用ggplot2时,此选项有效: library(ggplot2) dataToPlot <- data.frame(Freq = c(0.0000000, 0.7092199, 1.4184397, 2.1276596, 2.8368794), variable = rep('A',5), value = c(43089.76, 62923.17, 35446.15, 29553.76, 22
library(ggplot2)
dataToPlot <- data.frame(Freq = c(0.0000000, 0.7092199, 1.4184397, 2.1276596, 2.8368794),
variable = rep('A',5), value = c(43089.76, 62923.17, 35446.15, 29553.76, 22433.08))
p <- ggplot( dataToPlot , aes(x=Freq, y = value, group = variable ) ) + #
# geom_bar(stat = "bin") fill = variable,
geom_col( mapping = aes(col = variable, fill = variable), colour = F, alpha = 0.2, orientation = "x", position = "dodge") +
# scale_linetype(aes(linetype = 0))
guides(color = FALSE)
dev.new(); p
库(ggplot2)
dataToPlot您正在犯一些错误
首先,您忘了提到您也在使用包shinyjs
和plotly
其次,在服务器部件中使用renderpltly
,但在ui中调用plotOutput
。正确的选项是ui中的plotlyOutput
,因为您需要一个plotly图形
另一件事是:由于您需要一种绘图类型的图形,因此必须将ggplot图形p
转换为绘图类型。因此,您应该将ggplotly(p)
添加到服务器部件中
最后,为了解决边界问题,应该使用color=NA
而不是color=FALSE
。第二种方法适用于ggplot2,但不适用于plotly。我不知道确切的原因。也许有人可以澄清这一点
因此,您的代码应该如下所示:
library(ggplot2)
library(shiny)
library(shinyjs)
library(plotly)
dataToPlot <- data.frame(Freq = c(0.0000000, 0.7092199, 1.4184397, 2.1276596, 2.8368794),
variable = rep('A',5),
value = c(43089.76, 62923.17, 35446.15, 29553.76, 22433.08))
ui <- fluidPage(
useShinyjs(),
fluidRow(
column(8,
plotlyOutput("plot")
)
)
)
server <- function(input, output) {
output$plot <- renderPlotly({
p <- ggplot(dataToPlot , aes(x=Freq, y = value, group = variable)) +
geom_col(mapping = aes(col = variable, fill = variable), colour = NA, alpha = 0.2, orientation = "x", position = "dodge") +
guides(color = FALSE)
ggplotly(p)
})
}
shinyApp(ui,server)
库(ggplot2)
图书馆(闪亮)
图书馆(shinyjs)
图书馆(绘本)
dataToPlot
library(ggplot2)
library(shiny)
library(shinyjs)
library(plotly)
dataToPlot <- data.frame(Freq = c(0.0000000, 0.7092199, 1.4184397, 2.1276596, 2.8368794),
variable = rep('A',5),
value = c(43089.76, 62923.17, 35446.15, 29553.76, 22433.08))
ui <- fluidPage(
useShinyjs(),
fluidRow(
column(8,
plotlyOutput("plot")
)
)
)
server <- function(input, output) {
output$plot <- renderPlotly({
p <- ggplot(dataToPlot , aes(x=Freq, y = value, group = variable)) +
geom_col(mapping = aes(col = variable, fill = variable), colour = NA, alpha = 0.2, orientation = "x", position = "dodge") +
guides(color = FALSE)
ggplotly(p)
})
}
shinyApp(ui,server)