6
我在ggplot2中制作条形图,出于演示的原因,我需要在我的一些条形图之间有空格。我在scale_x_discrete
中使用限制来插入空白条,这给了我需要的空白。删除R中ggplot2中的单个x轴刻度标记?
在我的模拟数据组b
和c
之间的差距看起来很完美,但a
和b
之间的差距仍然有黑色刻度和背景中的白线。我不需要任何x轴网格线,所以我可以很容易地解决白线的问题,但我无法弄清楚如何摆脱刻度线。
我,使用R版本3.3.1(2016年6月21日) - “虫在你的头发”,在RStudio工作和代码需要GGPLOT2
### Mock data with the same structure as mine
my.data <- data.frame(x = rep(c("a", "b", "c", "d"), 3),
y = c("e", "f", "g"))
### Make graph
ggplot(my.data, aes(x = x, fill = y)) +
geom_bar(position = "fill") +
scale_x_discrete(limits = c("a", "", "b", "", "c", "d"))
### Remove white line in background by removing all x grid lines
ggplot (my.data, aes(x = x, fill = y)) +
geom_bar(position = "fill") +
scale_x_discrete(limits = c("a", "", "b", "", "c", "d")) +
theme(panel.grid.minor.x = element_blank(),
panel.grid.major.x = element_blank())
如何删除黑在a
和b
之间勾选标记?
如果我需要改变插入条之间的空间的方式,我该如何做,并维护图结构?
另一个 “哈克” 的方式做到这一点是添加像这样到了'theme':'轴。 ticks.x = element_line(color = c(“black”,“transparent”,“black”,“transparent”,“black”,“black”))' – Jota
是的,这可能是OP思路的顶点,并且至少可读。 “scale”方法的优势在于它可以自动处理所有网格线并自动打勾,缺点是代码没有意义。 – alistaire
非常好,谢谢! “hacky”的方式确实遵循我的原始思路,但是我可以看到使用'facet_grid'的好处。如果我命名方面并希望它们按非字母顺序排列(即“第一”,“第二”,“第四”),我该怎么做?这种修改使它们按字母顺序排列。 'my.data%>%mutate(grp = case_when(。$ x =='a'〜“first”, 。$ x =='b'〜“second”, TRUE〜“forth”))%> % ggplot(aes(x,fill = y))+ geom_bar(position ='fill')+ facet_grid(。〜grp,space ='free_x',scales ='free_x')' – MST