问题描述
我正在使用patchwork :: wrap_plots()输出ggplots列表。由于该列表是动态的,并且并不总是拥有相同数量的地块,因此,我需要找到一种方法来调整地块的高度,以免压扁某些地块。
服务器部分中的代码
output$attribute_plot<- renderPlot(analyze_demographics(demographics_table,selectedDemographicAttribute(),categories_df))
output$attribute_category_plot<-renderPlot(analyze_demographics(summary_demographics_table,categories_df))
output$display_questions_table<-renderTable(questions_table[,1:3],rownames=FALSE,colnames=FALSE)
在ui部分
tabItem (tabName = "demographic_analysis",selectInput("selected_attribute",label = h4("Select Demographic Attribute"),choices = categories_list,selected = 1),hr(),column(width=6,plotOutput('attribute_category_plot')),plotOutput('attribute_plot')),Box(width=12,solidHeader=FALSE,tableOutput('display_questions_table')
)
)
输出看起来像这样。
如您所见,右侧的图被压缩。
图形代码
plot_list<-list()
for(n in 2:ncol(temp_df)){
df<-data.frame(temp_df[,n])
parameter<-colnames(temp_df)[n]
rownames(df)<-rownames(temp_df)
names(df)[1]<-parameter
g<-ggplot(df) +
geom_point(aes(x=rownames(df),y=df[,1]))+
coord_flip()+
geom_segment(aes(yend=df[,1],xend=rownames(df),x=rownames(df),y=0)) +
labs(title = paste(parameter),y='Average score',caption = attribute) +
theme(legend.position = 'none',panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.background = element_rect(fill = color_palette[5]),plot.title=element_text(size=18,face="bold",family="Arial",color=color_palette[1],hjust=0.5,lineheight=1.2),# title
axis.title.y=element_blank(),# X axis title
axis.title.x=element_text(size=12,color=color_palette[1]),axis.text.x=element_text(size=10,color=color_palette[3],vjust=.5),axis.text.y=element_text(size=15,lineheight = 20,axis.ticks.y = element_blank())+
scale_x_discrete()
g
plot_list[[n-1]]<-g
}
plot_length<-length(plot_list)
multi_plot<-patchwork::wrap_plots(plot_list,nrow=plot_length,ncol=1)
谢谢您的时间
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)