也许我在stackexchange文献中错过了这个,因为我很惊讶地找到了许多解决方案来添加浮动轴标签和调整轴(例如add "floating" axis labels in facet_wrap plot),但没有什么可以解决我的重叠x-问题带有facet_wrap和scales =“free”的轴标签。这个很接近,但对于较旧的ggplot版本:overlapping y-scales in facet (scale="free")。这个可能是答案,写一个函数来做这样的操作,但我不能让它对我有用:Is there a way of manipulating ggplot scale breaks and labels?
这是一个可重复的例子:
v<-runif(1000,min=1000000,max=10000000)
x<-runif(100,min=0.1,max=1)
y<-runif(100000,min=0,max=20000)
z<-runif(100000,min=10000,max=2000000)
df<-data.frame(v,x,y,z)
colnames(df)<-c("Order V","Order X","Order Y","Order z")
library(reshape2)
melt.df<-melt(df[,c(1:4)])
library(ggplot2)
ggplot(melt.df, aes(x = value)) +
geom_histogram(bins=50,na.rm=TRUE) +
facet_wrap(~variable, scales="free") +
theme_bw()
结果是:
我有类似的设置,产生了这个:
答案 0 :(得分:2)
我想出来 - 至少是一个被黑的答案 - 并且会发布我的解决方案以防其他人可以使用它。 基本上我调整了轴文本的字体大小,并使用标度pkg来保持符号的一致性(即摆脱科学)。我改变的代码是:
ggplot(melt.df, aes(x = value)) +
geom_histogram(bins=50,na.rm=TRUE) +
facet_wrap(~variable, scales="free") +
theme_bw()+
theme(axis.text=element_text(size=10),text=element_text(size=16))+
scale_x_continuous(labels = scales::comma)
答案 1 :(得分:0)
如果您不想在标签中使用逗号,可以设置类似
的内容options(scipen = 10)
在绘图之前。这使得使用科学记数法的阈值更高,因此在这种情况下将使用普通标签。