我使用ggplot2包创建了R中某些数据的缺口框图。我有一个问题是x轴元素文本使我的组的标签重叠,这是我不想要的。
我也不想旋转标签。我希望每个标签都是水平书写的,但要继续在一个单独的标签上。线。所以(例如)标签石炭纪Lst的两个词。出现两个单词,第二个单词' Limestone'水平地写在石炭纪下面。我无法减小字体大小,因为它将难以阅读。
是否有人知道R&#39的ggplot中是否有命令可以解决这个问题?
很多,非常感谢
达米亚诺
PS:我目前的代码是:
box <- ggplot(AquiProps, aes(Geology, logTRANS))
box + geom_boxplot(notch = TRUE)
+ labs(x = "", y = "Mean log Transmissivity(m2/d)")
+ theme(axis.title = element_text(face = "bold", size = "12", color = "black"),
axis.text = element_text(size = 10, face = "bold", color = "black"),
axis.title.y = element_text(vjust = 1),
axis.title.x = element_text(vjust = 0.005))
我想我需要在axis.title.x = element_text命令中更改一些内容?!?!
答案 0 :(得分:4)
喜欢这个吗?
# create example
set.seed(1)
names <- paste("Carboniferous Species:",1:8)
df <- data.frame(names=rep(names,each=100),values=rnorm(800))
library(ggplot2)
ggplot(df,aes(x=names,y=values))+
geom_boxplot(notch=TRUE)+
scale_x_discrete(labels=gsub("(Carboniferous)","\\1\n",unique(df$names)))+
theme(axis.title = element_text(face = "bold", size = "12", color = "black"),
axis.text = element_text(size = 10, face = "bold", color = "black"),
axis.title.y = element_text(vjust = 1),
axis.title.x = element_text(vjust = 0.005))
上面的代码使用scale_x_discrete(labels=...)
将换行符插入轴标签。
您也可以使用例如:
将换行符直接插入数据中df$names <- gsub("(Carboniferous)","\\1\n",df$names)
然后您编写的代码将生成上面的相同图。
答案 1 :(得分:0)
这是一个古老的问题,但是自ggplot
3.3.0起,很容易解决。
您可以在guide = guide_axis(n.dodge = 2)
内使用参数scale_x_discrete
。
library(tidyverse)
set.seed(1)
names <- paste("Carboniferous Species:",1:8)
df <- data.frame(names=rep(names,each=100),values=rnorm(800))
ggplot(df,aes(x=names,y=values))+
geom_boxplot(notch=TRUE)+
scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
theme(axis.title = element_text(face = "bold",
size = "12",
color = "black"),
axis.text = element_text(size = 10,
face = "bold",
color = "black"),
axis.title.y = element_text(vjust = 1),
axis.title.x = element_text(vjust = 0.005))