控制主要网格线的长度-ggplot2

时间:2018-07-07 02:07:50

标签: r ggplot2 gridlines

是否有解决方案来控制ggplot2中主要网格线的长度?我在这里有一个图,我希望主网格线出现在零线的左侧(只是负值)。因此,对于条“ a”,只有一小部分网格线可见。enter image description here

# Some Data
df <- data.frame(trt = c("a", "b", "c"),
             outcome = c(-222.3, 121.9, 103.2))

# A plot with major grid lines
ggplot(df, aes(trt, outcome)) +
  geom_col() + 
  coord_flip() +
  theme_classic()+
  theme(panel.grid.major.y = element_line(color = "blue", size = 1)) +
  geom_hline(yintercept = 0, size = 1)

1 个答案:

答案 0 :(得分:4)

您无法控制网格线的范围;根据定义,网格涉及整个绘图区域,因此ggplot中没有用于此的选项。您可以做的是使用绘制线条的几何图形,例如geom_linerange

ggplot(df, aes(trt, outcome)) +
  geom_linerange(ymin = -Inf, ymax = 0, color = 'blue') +
  geom_col() + 
  coord_flip() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  theme(panel.grid = element_blank())

enter image description here