在ggplot中设置y轴中断

Posted

技术标签:

【中文标题】在ggplot中设置y轴中断【英文标题】:Setting y axis breaks in ggplot 【发布时间】:2022-01-12 00:22:15 【问题描述】:

我在代码中设置中断时遇到困难,我尝试添加 break=seq(0, 100, by=20) 但似乎无法使其正常工作。本质上,我希望 Y 轴从 0-100 变为每 20 个刻度。

    YearlyCI <- read.table(header=T, text='
  Station Year       CI        se
     M-25 2013 56.57098 1.4481561
     M-45 2013 32.39036 0.6567439
      X-2 2013 37.87488 0.7451653
     M-25 2008     74.5       2.4
     M-45 2008     41.6       1.1
     M-25 2004     82.2       1.9
     M-45 2004     60.6       1.0
     ')


library(ggplot2)
ggplot(YearlyCI, aes(x=Year, y=CI, colour=Station,group=Station)) +
  geom_errorbar(aes(ymin=CI-se, ymax=CI+se), colour="black", width=.2) +
  geom_line(size=.8) +
  geom_point(size=4, shape=18) +
  coord_cartesian(ylim = c(0, 100)) +
  xlab("Year") +
  ylab("Mean Condition Index") +
  labs(fill="") +
  theme_bw() +
    theme(legend.justification=c(1,1), legend.position=c(1,1)) 

【问题讨论】:

您是如何尝试添加 brks 的? + scale_y_continuous(breaks = seq(0,100,by = 20) 应该可以工作 添加有效。分别添加 scale_y_continuous 和 coord_cartesian 代码,我不知道你可以一起使用它们。非常感谢! 【参考方案1】:

你需要添加

+ scale_y_continuous(breaks = seq(0, 100, by = 20))

编辑:根据下面的评论,这仅在轴已经在适当范围内时才有效。要强制执行范围,您可以扩展上述代码,如下所示:

+ scale_y_continuous(limits = c(0, 100), breaks = seq(0, 100, by = 20))

【讨论】:

这仅适用于您的数据已经在 0 到 100 之间的情况。如果不是,并且您想强制图表显示从 0 到 100 的 Y 轴(每 20 次中断)-例如均衡并排显示的多个图的轴 - 添加limits=c(0,100),如下所示:+ scale_y_continuous(limits=c(0,100), breaks=seq(0,100, by = 20)) 如果您想使用数据的 y 限制而不是指定它,您将如何更改它?我尝试了+scale_y_continuous(breaks = seq(0, ylim(), by = 500,但错误提示“没有适用于 NULL 类对象的‘限制’的适用方法”。我的数据框是长格式的。谢谢 @JJGabe max_val &lt;- max(your_variable) 然后scale_y_continuous(breaks = seq(0, max_val, by = 500), limits=c(0, max_val))

以上是关于在ggplot中设置y轴中断的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化使用不连续的y轴中断的Y轴来可视化数值分布差异很大的数据实战:把数据轴分为两个区间或者多个区间来匹配不同区间数据的可视化(因为有的数据可能10附近,有的数值可能1W附近)

R语言ggplot2可视化强制设置x轴y轴坐标的起始点为0或者其他实战

如何在three.js中设置Z坐标系?

R语言ggplot可视化:自定义设置y轴坐标轴线条的颜色(customize setting y axis line color of ggplot2 graph)

无法隐藏子图轴标签或在matplotlib中设置MaxNLocator

在ggplot中设置注释文本的宽度