Мне поручено написать метод S3, который строит два графика, где
- Пользователь выбирает цвета для линий на графике 1.
- Пользователь выбирает цвета для максимума на графике2.
- Пользователь может выбрать, существуют точки или нет.
У меня проблемы с 3.
Пример данных
date <- seq(as.Date("2018/1/1"), as.Date("2018/1/10"), "days")
rain <- sample(x = 0:25, size = 10)
max <- sample(x = 10:25, size = 10)
min <- sample(x = 5:15, size = 10)
example <- data.frame(date, rain, max, min)
class(example) <- c("Weather", class(example))
class(example)
Ниже воспроизводится мой график.Может кто-нибудь помочь мне разобраться, как добавить в этот код, чтобы пользователь мог включать и выключать #OPTIONAL POINTS
plot.Weather <- function(x, colpick1, colpick2, colpick3) {
##TEMP PLOT
par(mfrow=c(2,1))
#Plotting maxtp with title
plot(x[, 1], x[, 3],
main = "Temperatures",
type = "l", frame = FALSE,
col = colpick1,
xlab = "Date", ylab = expression(paste("Temperature [",degree,"C]")),
xlim = c(min(x[, 1]), max(x[, 1])), ylim = c(0,30))
#Add a second line
lines(x[, 1], x[, 4], type = "l", col = colpick2, xlab = "date", ylab = "temp")+
#Verical dotted lines
abline(v =x[, 1], lty=3, col="grey")
#OPTIONAL POINTS
##Adding max and min points
points(x[, 1][which.max(x[, 3])], max(x[, 3]), col = colpick1, pch = 20 )
points(x[, 1][which.min(x[, 4])], min(x[, 4]), col = colpick2, pch = 20 )
#adding text
text(x[, 1]+0.5, x[, 3]+1, labels = ifelse(x[, 3] == max(x[, 3]), 'Max', NA ), cex= 0.9)
text(x[, 1]-0.5, x[, 4]-1, labels = ifelse(x[, 4] == min(x[, 4]), 'Min', NA ), cex= 0.9)
##RAINPLOT
#Plotting maxtp with title
plot(x[, 1], x[, 2],
type = "h", frame = FALSE,
col = ifelse(x[, 2] == max(x[, 2]), colpick3, "green"),
xlab = "Date", ylab = "Percipitation",
xlim = c(min(x[, 1]), max(x[, 1])), ylim = c(0,25))
}
plot.Weather(example, "red", "blue", "red")
Заранее спасибо,
Шон