Зарегистрируйте ось Y на гистограмме со значениями меньше 1, включая линии графика с отрицательными значениями - PullRequest
0 голосов
/ 28 мая 2020

Я построил гистограмму со значениями меньше 1 и объединил ее с двумя линиями, одна с положительными, а другая с отрицательными большими значениями. Когда я рисую его, полосы намного меньше и их трудно увидеть. Я хотел бы изменить масштаб оси Y так, чтобы полосы go от 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 ). Есть идеи, как это решить? </p>

    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)

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете взять журнал абсолютного значения, а затем умножить его на знак исходного значения:

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

Что даст вам следующее:

enter image description here

...