控制主要网格线的长度 - ggplot2
Control the length of major grid lines - ggplot2
在ggplot2中有控制主要网格线长度的解决方案吗?我在这里有一个图,我希望主要网格线出现在零线的左侧(只是负值)。所以对于柱 "a",只有一小部分网格线是可见的。
# 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)
您无法控制网格线的范围;根据定义,网格涉及整个绘图区域,因此在 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())
在ggplot2中有控制主要网格线长度的解决方案吗?我在这里有一个图,我希望主要网格线出现在零线的左侧(只是负值)。所以对于柱 "a",只有一小部分网格线是可见的。
# 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)
您无法控制网格线的范围;根据定义,网格涉及整个绘图区域,因此在 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())