在绘图和分面条之间移动轴标签
Posted
技术标签:
【中文标题】在绘图和分面条之间移动轴标签【英文标题】:Move axis labels in between plot and facet strip 【发布时间】:2017-09-02 06:22:09 【问题描述】:我正在尝试将刻面条移到绘图的最左侧,以便标签与条相邻,而分组条位于它们的左侧(请参见下面的示例)。
我认为这必须与 Grobs 一起完成,但我对这种级别的操作几乎没有经验,希望得到指导。
数据:
structure(list(dept = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L), .Label = c("Distribution Centre Services", "IT",
"Marketing", "Merchandise & Inventory", "Operations and Communication"
), class = "factor"), label = c("test 25", "test 23", "test 24",
"test 27", "test 26", "test 28", "test 29", "test 31", "test 33",
"test 30", "test 32", "test 38", "test 36", "test 37", "test 43",
"test 34", "test 35", "test 40", "test 39", "test 42", "test 41",
"test 25", "test 23", "test 24", "test 27", "test 26", "test 28",
"test 29", "test 31", "test 33", "test 30", "test 32", "test 38",
"test 36", "test 37", "test 43", "test 34", "test 35", "test 40",
"test 39", "test 42", "test 41"), Gap = c(-0.16, -0.18, -0.21,
-0.22, -0.27, -0.29, -0.31, -0.31, -0.35, -0.39, -0.42, -0.15,
-0.15, -0.2, -0.21, -0.22, -0.27, -0.29, -0.29, -0.31, -0.36,
-0.16, -0.18, -0.21, -0.22, -0.27, -0.29, -0.31, -0.31, -0.35,
-0.39, -0.42, -0.15, -0.15, -0.2, -0.21, -0.22, -0.27, -0.29,
-0.29, -0.31, -0.36), section = c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L), impeff = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = c("Effectiveness", "Importance"), class = "factor"),
score = c(0.77, 0.79, 0.82, 0.8, 0.83, 0.9, 0.91, 0.94, 0.89,
0.94, 0.91, 0.82, 0.74, 0.78, 0.81, 0.83, 0.85, 0.82, 0.81,
0.8, 0.83, 0.61, 0.61, 0.61, 0.58, 0.56, 0.61, 0.6, 0.63,
0.54, 0.55, 0.49, 0.67, 0.59, 0.58, 0.6, 0.61, 0.58, 0.53,
0.52, 0.49, 0.47)), .Names = c("dept", "label", "Gap", "section",
"impeff", "score"), row.names = c(23L, 24L, 25L, 26L, 27L, 28L,
29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L,
42L, 43L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L,
77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L), class = "data.frame")
代码:
curr.plot <- ggplot(data = curr.data, aes(x = label, y = score)) +
geom_bar(aes(fill = impeff),stat = "identity", position = "dodge",width = .7) +
geom_text(aes(label=percent(score),group=impeff), position= position_dodge(width=.7),vjust=.4,hjust=-.1) +
facet_grid(dept~., switch = "y", scales = "free_y", space = "free") +
theme(legend.position = "bottom")+
coord_flip()+
guides(fill = guide_legend(reverse=TRUE,title=NULL))+
theme(axis.title.x = element_blank()) +
theme(axis.title.y = element_blank()) +
theme(axis.text.y = element_text(colour="black"))+
theme(strip.text.y = element_text(size = 12, colour = "black"))+
scale_y_continuous(labels=percent,limits = c(0,1))
电流输出:
期望的输出(购物):
【问题讨论】:
【参考方案1】:试试:
+ theme(strip.placement = "outside")
【讨论】:
以上是关于在绘图和分面条之间移动轴标签的主要内容,如果未能解决你的问题,请参考以下文章
Python Pyx 绘图:在绘图的轴标签中使用 \mathbb
R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N中位数median四分位数的间距iqr)