【发布时间】:2021-06-06 19:07:26
【问题描述】:
应该没有 xaxis 标签,我设置为 element_blank() 并且标签应该以一定角度出来,垂直于绘图而不是像这样聚集和不可读。我已经在下面发布了我的代码我不确定是什么导致了这个问题。每组 162 个点与一个变量相关,因此每个标签已设置为出现在中间,即所有 45 个自变量的每个 81 倍数。这就是 scale_x_continuous 的用途。我不知道为什么情节显示 1:n(pvall) 我以为我已经用 theme(legend.title=element_blank()) 关闭了它。
这是制作它的代码。
pvalplot<-function(var, maintitle) {
pvalall<-as.data.frame(c(t(var)))
pvalall$Sample_Size<-c((1:(5*162)),(1:(11*162)),(1:(3*162)),(1:(5*162)),(1:(13*162)),(1:(3*162)),(1:(5*162)))
pvalall$Domain<-c(rep("Physical",5*162),rep("Perinatal",11*162),rep("Developmental",3*162),
rep("Lifestyle-Life Events",5*162),rep("Parental-Family",13*162),rep("School",3*162),
rep("Neighborhood",5*162))
pvalall$Domain <- factor(pvalall$Domain,
levels = c("Physical", "Perinatal", "Developmental",
"Lifestyle-Life Events", "Parental-Family",
"School","Neighborhood"))
pvalall[,1]<-ifelse(pvalall[,1]<1e-20,1e-20,pvalall[,1])
names(pvalall)[1]<-"P-Values"
pvalexp.labels= rep("",45*162)
for (i in c(1:45)){
j=i*162-81
pvalexp.labels[j]=rownames(var)[i]
} #makes list of empyt labels that w
p<-ggplot(pvalall,aes(x = 1:nrow(pvalall), y = -log10(pvalall[,1])))+
geom_point(aes(color = Domain,size=5),
alpha = 0.7, size=1)
p+ylab(expression(atop(" -log10(P-Values)")))+
ylim(0,20)+
scale_x_continuous( breaks=c(1:45)*162-81, labels = rownames(var))+
theme(legend.title=element_blank())+
theme_classic()+
theme(axis.text.x = element_text(angle = 45)) +
theme(axis.title.x = element_blank())+
theme(axis.title.y = element_text(size = 25))+
theme(text = element_text(size=25))+
theme(legend.title=element_blank())+
theme(legend.position=c(0.8,0.7))+
geom_abline(slope=0,intercept=-log10(c(var)[astsa::FDR(c(var))]),linetype = "dashed")+
geom_abline(slope=0,intercept=5.2,linetype = "dashed")+
ggtitle(maintitle)+
theme_update(plot.title = element_text(hjust = 0.5))+
theme(
legend.box.background = element_rect(),
legend.box.margin = margin(6, 6, 6, 6))+
annotate("text", label = expression(paste("FDR P-value","=0.05")),size=5, x=1000,y=-log10(c(var)[astsa::FDR(c(var))])-0.5, color="black",parse=TRUE)+
annotate("text", label = expression(paste("Bonferroni P-value","=0.05")),size=5, x=1200,y=5.7, color="black",parse=TRUE)
}#end of plotting
gender="male"
race="white"
tiff(paste("pvalues_",gender,race,".tiff",sep = ""),1400,900)
pvalplot(var = as.matrix(get_pvals(gender, race)),
"White Males")
【问题讨论】:
-
尝试使用
theme(plot.title = element_text(hjust = 0.5))而不是使用theme_update()。 -
@stefan 几乎工作了啊。现在我只需要调整它们的大小,因为它们有点破坏情节。
-
谢谢,虽然我认为这让我克服了困难。
标签: r ggplot2 data-visualization