Как настроить даты (годы) на оси X в R - PullRequest
0 голосов
/ 26 июня 2018

Я изо всех сил пытаюсь настроить размер прыжка по оси X в R.

Текущий код:

par(mfrow = c(2,2))

r.star.ts.sp <- ts(r.star.sp, frequency = 4, start = c(1978,1), end = c(2018, 1)) 
# Big drop in r* around 123th quarter equivalent to 2008:Q4 / 2009:Q1
trendgrowth.ts.sp <- ts(trendgrowth.sp, frequency = 4, start = c(1978,1), end = c(2018, 1))

plot.ts(r.star.ts.sp,
        ylim = c(-3, 4), xlab = " ", ylab = " ", axes = F, col = "blue")
lines(trendgrowth.ts.sp, lty = 2, col = "red")
abline(h = 0, lty = 2)

title(main ="r* and Trend Growth", line = 0.5, font.main = 3)
box()
axis(4)
axis(1)

legend("bottomleft", legend = c("r*", "Trend Growth (g)"), 
       bty = "n", lty = c(1,2), col = c("blue", "red"), horiz = F, text.col = "black", 
       cex = 1, pt.cex = .5, inset = c(0.02, 0.02))

# -------------------------------------- #
# Plot output gap and real rate gap
# -------------------------------------- #
outputgap.ts.sp <- ts(outputgap.sp, frequency = 4, start = c(1978,1), end = c(2018, 1))
realrategap.ts.sp <- ts(realrategap.sp, frequency = 4, start = c(1978,1), end = c(2018, 1))

plot.ts(outputgap.ts.sp, ylim = c(-20, 15), xlab=" ", ylab=" ", axes = F, col="blue")
lines(realrategap.ts.sp, lty = 2, col = "red")
abline(h = 0, lty = 2)

legend("topright", legend = c("Output Gap", "Real Rate Gap"), 
       bty = "n", lty = c(1,2), col = c("blue", "red"), horiz = F, text.col = "black", 
       cex = 1, pt.cex = .5, inset = c(0.02, 0.02))

title(main = "Output Gap and Real Rate Gap", line = 0.5, font.main = 3)
box()
axis(side = 4)
axis(side = 1)

Как можно указать годы на оси х с 1975 по 2020 г. с скачками в 5 лет?

Кроме того, (не по теме) мне нужны два графика рядом друг с другом, но я чувствую, что par (mfrow = c (2,2)) не является правильным утверждением. Однако, изменение его на par (mfrow = c (1,2)) создает необычно большие цифры.

Спасибо!

1 Ответ

0 голосов
/ 01 июля 2018

ФП запросил указать годы на оси х с 1975 по 2020 г. с скачками 5 лет .

Это может быть достигнуто с помощью

axis(1, at = seq(1975L, 2020L, by = 5L))

Однако результат может зависеть от параметра mfrow. Вот фиктивный пример использования par(mfrow = c(2, 2)):

enter image description here

Обратите внимание, что ось X левого графика была создана с помощью axis(1), а ось X правого графика - с помощью axis(1, at = seq(1975L, 2020L, by = 5L)). Также обратите внимание на большое пустое пространство под двумя графиками.

С par(mfrow = c(1, 2)) результат становится

enter image description here

Здесь на правом графике показаны немаркированные («второстепенные») галочки. Это объясняется в разделе mfrow ?par: В макете с ровно двумя строками и столбцами базовое значение cex уменьшается в 0,83 раза. Таким образом, размер шрифта уменьшен на 17%, что позволяет пометить все отметки без переполнения.

...