无法在ggplot2 facet_wrap geom_histogram plot中修复x轴标签

时间:2016-11-18 20:23:58

标签: r ggplot2 histogram axis-labels facet-wrap

也许我在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()

结果是:

Ex

我有类似的设置,产生了这个:

Histogram cmd上的任何帮助,或者可以设置这些x轴标签中断的功能都会很棒!

2 个答案:

答案 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)

在绘图之前。这使得使用科学记数法的阈值更高,因此在这种情况下将使用普通标签。