条形图中的Log Y轴,其值小于1,并且包括带有负值的绘图线

问题描述 投票:0回答:1

我绘制了一个条形图,其值小于1,并将其与两条线组合,一条线为正值,另一条线为负值。当我绘制它时,条形线要小得多并且很难看到。我想更改Y轴的比例,以便看到从0到0.5的条形更大。目的是尝试将y轴从2折断为0到0.5,其余部分折断。我考虑过将log =“ y”应用于条形图,但是该轴从负变为正,因此无法记录。 (barplot.default(data $ bv,data $ year,ylim = c(-3,3),log =“ y”的错误):对数刻度错误:至少一个'height + offset'值<= 0)。关于如何解决这个问题的任何想法?

    data <- data.frame(c(2000,2001,2002,2003,2004,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018))
data$bv <- as.numeric(c(0.29,-0.15,0.1, 0.3, 0.2, -0.1, 0.25, -0.2, -0.3,0.08,-0.54, -0.24, -0.15, 0.26, 0.12, 0.23,-0.16,0.3))
data$pvp <- as.numeric(rep(c(2.8,2.9,3),times=6))
data$pvn <- as.numeric(rep(c(-2.8,-2.9,-3),times=6))
data$year <- as.numeric(c(2000,2001,2002,2003,2004,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018))
bar <- barplot(data$bv, data$year, ylim=c(-3,3))
par(new = T)
plot(data$pvp,ylim=c(-3,3),axes=F,xlab="",ylab="",type="b",lty=3,lwd=1.5,pch=15,cex=0.8)
points(data$pvn,type="b",lty=3,lwd=1.5,pch=17,cex=0.8)
r logging bar-chart axis
1个回答
0
投票

您可以取绝对值的对数,然后将其乘以原始值的符号:

data$bv <- log(abs(data$bv)) * sign(data$bv)

哪个给您这个:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.