我正在尝试排列所有图,即在plotly
子图中具有共同图例的条形图。我使用ggplotly
创建了单个子图,而hide_legend()
似乎无法解决我的问题。使用plotly可以更容易地执行相同的操作,但是我不得不忘记ggplot。谁能在这件事上帮助我?
以下是描述我的问题的代码:
library(dplyr)
library(ggplot2)
library(plotly)
data <- dget("loan_pred.data")
factor_col_names <- names(data)[map_lgl(data,is.factor)]
n<- 1
create_barplot_plotly <- function(feature){
g <- ggplot(data) +
aes_string(x=feature)+
ggtitle(paste(feature))+
geom_bar(aes(fill=Loan_Status),position = "fill")+
ylim(0,1+0.10)+
ylab("proportion") + theme_bw()
g <- ggplotly(g)
if (n %% length(factor_col_names)!=1){
g <- hide_legend(g)
}
n <<- n +1
return(g)
}
plotly::subplot(map(factor_col_names,create_barplot_plotly),
nrows = 3,margin = 0.06,titleX = TRUE,titleY = TRUE)%>%
layout(title="BoxPlots")
我已经在Google Drive上使用dput上传了数据,并编辑了代码以减少依赖性。