R ggplot中的左对齐刻度线标签
Left-align tick mark labels in R ggplot
我可以在 ggplot
中找到对齐图例和轴标签的选项,但不能找到用于刻度线标签的选项。
是否可以让这些标签不与图形绘图框右对齐,而是与最长标签的开头或与整个图形边界的某个设定距离齐平左对齐?
示例:
set.seed(1)
library(ggplot2)
axisLabels.x <- c("This is a longer label",
"Short label", "Short label","Short label","Short label",
"This is again a longer label")
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6))
ggplot(gg) +
geom_bar(aes(x,y, fill=x), stat="identity")+
scale_x_discrete(labels=labels.wrap)+
scale_fill_discrete(guide="none")+
labs(x="",y="Response")+
coord_flip()
通缉:
由于它提供了解决方案,我将@user20650 的评论作为答案。
set.seed(1)
library(ggplot2)
axisLabels.x <- c("This is a longer label",
"Short label", "Short label","Short label","Short label",
"This is again a longer label")
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6))
plot <- ggplot(gg) +
geom_bar(aes(x,y, fill=x), stat="identity")+
scale_x_discrete(labels=labels.wrap)+
scale_fill_discrete(guide="none")+
labs(x="",y="Response")+
coord_flip()
我们开始吧
plot + theme(axis.text.y = element_text(hjust = 0))
我可以在 ggplot
中找到对齐图例和轴标签的选项,但不能找到用于刻度线标签的选项。
是否可以让这些标签不与图形绘图框右对齐,而是与最长标签的开头或与整个图形边界的某个设定距离齐平左对齐?
示例:
set.seed(1)
library(ggplot2)
axisLabels.x <- c("This is a longer label",
"Short label", "Short label","Short label","Short label",
"This is again a longer label")
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6))
ggplot(gg) +
geom_bar(aes(x,y, fill=x), stat="identity")+
scale_x_discrete(labels=labels.wrap)+
scale_fill_discrete(guide="none")+
labs(x="",y="Response")+
coord_flip()
通缉:
由于它提供了解决方案,我将@user20650 的评论作为答案。
set.seed(1)
library(ggplot2)
axisLabels.x <- c("This is a longer label",
"Short label", "Short label","Short label","Short label",
"This is again a longer label")
labels.wrap <- lapply(strwrap(axisLabels.x,50,simplify=F),paste,collapse="\n") # word wrap
gg <- data.frame(x=LETTERS[1:6], y=sample(1:10,6))
plot <- ggplot(gg) +
geom_bar(aes(x,y, fill=x), stat="identity")+
scale_x_discrete(labels=labels.wrap)+
scale_fill_discrete(guide="none")+
labs(x="",y="Response")+
coord_flip()
我们开始吧
plot + theme(axis.text.y = element_text(hjust = 0))