【问题标题】:How to surpress horizontal grid lines without removing ticks from y axis?如何在不从 y 轴移除刻度的情况下抑制水平网格线?
【发布时间】:2019-10-24 17:47:16
【问题描述】:

我想删除水平网格线但保留垂直网格线。我还想在 x 和 y 轴上保持刻度。

这是我的代码,也是我目前尝试过的:

df <- data.frame("prop" = c(102.73,260.65), "Name" = c("All Genes","RG Genes"))
p<-ggplot(data=df, aes(x=Name, y=prop,fill=Name)) +
  geom_bar(stat="identity")+
  labs(x="", y = "Proportion of cis EQTLs")+
  scale_fill_brewer(palette="Greens") + 
  theme_minimal()+
  theme(legend.position = "none",panel.grid.minor.y = element_blank())
p + annotate("text", x = 1.5, y = 280, label = "p = XXXXXX", size = 3.5) + 
    annotate("rect", xmin = 1, xmax = 2, ymin = 270, ymax =270, alpha=1,colour = "black")

【问题讨论】:

标签: r ggplot2


【解决方案1】:

您已经完成了 95% 的工作。网格有两组线——主要的和次要的。您删除了一半的水平网格 (panel.grid.minor.y)。要删除另一半,请添加panel.grid.major.y = element_blank()。要在 x 轴和 y 轴上添加刻度,请添加 axis.ticks = element_line()

df <- data.frame("prop" = c(102.73,260.65), "Name" = c("All Genes","RG Genes"))

p <- ggplot(data = df, aes(x = Name, y = prop, fill = Name)) +
  geom_bar(stat = "identity") +
  labs(x = "", y = "Proportion of cis EQTLs") +
  scale_fill_brewer(palette="Greens") + 
  theme_minimal() +
  theme(legend.position = "none",
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        axis.line = element_line(),
        axis.ticks = element_line())

p + annotate("text", x = 1.5, y = 280, label = "p = XXXXXX", size = 3.5) + 
  annotate("rect", xmin = 1, xmax = 2, ymin = 270, ymax =270, alpha=1,colour = "black")

【讨论】:

  • 非常感谢,有没有办法查看 y 轴,而不是让这 3 个数字悬空?有x轴也很好
  • 没问题。是的,要添加一条轴线,您可以使用axis.line,如果您只想指定一条轴线,您可以使用axis.line.xaxis.line.y。既然你想要两者,你可以省略将添加两者的 x/y。编辑答案以添加轴线。
猜你喜欢
  • 1970-01-01
  • 2017-12-16
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 2015-01-01
相关资源
最近更新 更多