Как нарисовать прямоугольник под линиями сюжета в сюжете? - PullRequest
1 голос
/ 28 марта 2020

Это мой график:

enter image description here

, который я сделал, используя следующий набор данных:

targ_plot = structure(c(4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 
4.25, 4.25, 3.75, 3.75, 3.75, 3.5, 3.5, 3.5, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3.25, 3.25, 3.25, 3.5, 3.5, 3.5, 3.75, 3.75, 4, 4, 4.25, 
4.25, 4.5, 4.5, 4.5, 4.75, 4.75, 4.75, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 5, 5, 5, 5.25, 5.25, 5.25, 4.25, 3.75, 3, 3, 3, 2.5, 2.25, 
1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 
1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 1.75, 
1.75, 2, 2, 2, 2.25, 2.25, 2.25, 2.25, 2, 1.75, 1.75, 1.75, 1.75, 
1.75, 1.75, 1.75, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 
1.5, 1, 1, 1, 1, 1, 1, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 
0.4, 0.4, 0.4, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 
0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 3.25, 
3.25, 3.25, 3.25, 3.25, 3.25, 3.25, 3.25, 3.25, 3.25, 3.25, 2.75, 
2.75, 2.75, 2.5, 2.5, 2.5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.25, 2.25, 
2.25, 2.5, 2.5, 2.5, 2.75, 2.75, 3, 3, 3.25, 3.25, 3.5, 3.5, 
3.5, 3.75, 3.75, 3.75, 4, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 
4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 4.25, 3.75, 3.25, 
2.5, 2, 2, 1.5, 1.25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.25, 1.25, 1.25, 1.5, 1.5, 1.5, 
1.5, 1.25, 1, 1, 1, 1, 1, 1, 1, 0.75, 0.75, 0.75, 0.75, 0.75, 
0.75, 0.75, 0.75, 0.75, 0.75, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.15, 0.15, 0.15, 0.05, 0.05, 
0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 
0.05, 0.05, 0.05, 0.05, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.25, 2.25, 2.25, 
2.25, 2.25, 2.25, 2.25, 2.25, 2.25, 2.25, 2.25, 1.75, 1.75, 1.75, 
1.5, 1.5, 1.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.25, 1.25, 1.25, 1.5, 
1.5, 1.5, 1.75, 1.75, 2, 2, 2.25, 2.25, 2.5, 2.5, 2.5, 2.75, 
2.75, 2.75, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3.25, 3.25, 
3.25, 3.25, 2.75, 2, 1, 1, 0.5, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.5, 0.5, 0.5, 
0.75, 0.75, 0.75, 0.75, 0.5, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 
0.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, -0.1, -0.1, -0.1, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, 
-0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.2, -0.3, -0.3, 
-0.3, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, 
-0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, 
-0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, 
-0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.4, -0.5, 
-0.5, -0.5, -0.5, -0.5, 0.499999999999989, 1.24999999999997, 
-0.250000000000039, 0, 0.999999999999979, -2, 0, 1.25000000000002, 
-0.249999999999995, 2.99999999999998, 8.65, -5.14999999999999, 
0.499999999999989, 2.4, 8.44999999999998, 2.99999999999998, 0.950000000000006, 
-4.49999999999999, 0.124999999999998, 0, 0.550000000000006, 0.499999999999989, 
0, 0, 0.499999999999989, 0.299999999999967, 2.50000000000001, 
3.55000000000001, 0.249999999999995, -0.249999999999995, 0, -0.100000000000033, 
0.300000000000011, -0.100000000000033, -0.200000000000022, -1.2, 
-0.100000000000033, -0.699999999999967, 0, -0.649999999999995, 
0, 0.800000000000001, 0, 0, 0, 0, -1.00000000000002, -0.800000000000001, 
-0.200000000000022, -1.2, 0.200000000000022, -0.599999999999978, 
-2.49999999999999, -0.550000000000006, -1.75000000000001, 0.424999999999986, 
0, -0.099999999999989, -0.999999999999979, 0.4, -0.099999999999989, 
-0.800000000000001, 0.099999999999989, 0.150000000000006, 0, 
-0.100000000000033, 0.150000000000006, -0.350000000000072, -1.49999999999997, 
-1.18499999999999, -0.300000000000011, 0.349999999999984, -0.0999999999999446, 
0.349999999999984, -0.0500000000000611, 0, -0.100000000000033, 
-0.100000000000033, -1.14999999999998, 0, -0.300000000000011, 
2.4, -2.6, 2.59999999999998, -6.30000000000002, 0.349999999999984, 
3.95, 4.6, -0.900000000000001, 1.35000000000001, 2.3, 0.2, -0.45, 
0, -0.5, -0.750000000000001, -0.35, 0, -0.1, -0.25, 0.1, 1.6, 
0.4, 0.2, 0.35, 0.3, 0, -0.2, 0.0500000000000056, 0.350000000000006, 
-0.0499999999999945, 0.99999999999999, -0.700000000000012, 0, 
0.299999999999989, 0.600000000000001, 2.5, 12.2, -14.3, 2.8, 
0.1, 0.35, 0.499999999999995, -0.2, 0.3, 1.8, -10.4, 0.700000000000001, 
0.85, 0.550000000000001, 0.599999999999999, 0, 0.1, 0, 0.1, 0.1, 
-0.2, 0.399999999999999, 0.1, 0, 0, 0, -0.3, 0.45, 0, 0.550000000000001, 
0.999999999999998, 0.899999999999998, 2.1, 0.499999999999999, 
0, -0.1, -0.8, 0, 0.4, -0.35, 0.505, 0, -1.3, 1.175, 0, 0, -0.0399999999999998, 
0, 0.0150000000000011, 0, 0, 5.03, 0.88, 0, 2.405, 0, 0, 0, 0.4, 
0, 0.344999999999995, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0849992036819458, 
0, 0, 0, 0, 0.964999198913574, 0, 0, 0, 0, 0, -0.455000996589661, 
0, 0, 0, 0.549998879432678, 0, -0.510001182556152, 0, 0, 0, 0.499999523162842, 
0, 0.499999523162842, 3.41, 0, 3.440002, -0.06, 0, 0.024998, 
0.009999), .Dim = c(217L, 4L), .Dimnames = list(NULL, c("MLF", 
"MRO", "DFR", "Target")), .Tsp = c(2002, 2020, 12), class = c("mts", 
"ts", "matrix"))
   colors = c("#00366C", "#909800" , "#79ABE2", "#E16A86")

, и это код, который произвел график выше:

plot(targ_plot, plot.type = "single", ylab = "" , xlab = "" , main = "Target", col = colors, lwd = 2, xaxt = "n")
 axis(1, at = seq(2002, 2020, 1), labels = seq(2002, 2020, 1))
 legend("bottomright", colnames(targ_plot), col = colors, lwd = 3, bty = "n")
 abline(h = 0, col = "black", lty = 2)
rect(2008,16,2009,-17, col= rgb(0,0,1, alpha=0.5), border = FALSE)

Как вы можете видеть, прямоугольник выше линий, я хочу, чтобы он был ниже линий и был бы серый возможно. Я искал похожие вещи везде. Я не мог решить проблему.

Можете ли вы помочь мне разобраться с этим?

Спасибо

1 Ответ

1 голос
/ 28 марта 2020

Шаги:

  1. Создание пустой области построения с помощью plot(..., type = "n").
  2. Нарисуйте прямоугольник.
  3. Установите графический параметр new от par(new = T).
  4. Запустите код построения.
  5. Сброс графических параметров.
# (1)
plot(targ_plot, type = "n", plot.type = "single", ylab = "", xlab = "", main = "Target", col = colors, lwd = 2, xaxt = "n")

# (2)
rect(2008, 16, 2009, -17, col = gray(0.5, alpha = 0.5), border = FALSE)

# (3)
op <- par(new = T)

# (4)
plot(targ_plot, plot.type = "single", ylab = "", xlab = "", main = "Target", col = colors, lwd = 2, xaxt = "n")
axis(1, at = seq(2002, 2020, 1), labels = seq(2002, 2020, 1))
legend("bottomright", colnames(targ_plot), col = colors, lwd = 3, bty = "n")
abline(h = 0, col = "black", lty = 2)

# (5)
par(op)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...