Как ограничить график, чтобы показать только точки выше положительной оси х? - PullRequest
0 голосов
/ 13 декабря 2018

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

plot of my data

Однако из-за отрицательного всплеска около 2017 года, график показываетзначения выше и ниже оси х.Как мне сделать так, чтобы на графике отображались только значения выше оси x?

Это код, который я сейчас использую для создания своего графика

plot(dandpw) addLegend(lty = 1)

mydata> head(dandpw) QLD1.Price NSW1.Price VIC1.Price SA1.Price TAS1.Price 2008-01-07 10:30:00 33.81019 36.52777 49.66935 216.45379 30.88968 2008-01-14 10:30:00 45.09321 37.55887 49.04155 248.33518 51.16057 2008-01-21 10:30:00 27.22551 29.57798 31.28935 31.56158 45.99226 2008-01-28 10:30:00 26.14283 27.32113 30.20470 31.90042 53.48170 2008-02-04 10:30:00 91.86961 36.77000 37.09027 37.57167 56.28464 2008-02-11 10:30:00 62.60607 28.83509 34.95866 35.18217 55.78961

dput (head (dandpw

)

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете сделать это двумя способами.Поскольку нет пригодного для использования dput (только изображения), я предполагаю, что ваши данные находятся во фрейме данных.

  1. Вы можете удалить отрицательные числа из набора данных
  2. Вы можете поместитьпределы на оси Y, показанные на графике (с использованием ggplot2)

Метод 1 (не рекомендуется, поскольку он изменяет ваши данные):

#remove negatives and replace with NA. Can also replace with 0 if desired
dandpw[dandpw < 0] <- NA

Метод 2:

#assume dandpw is data frame
library(tidyverse)
names(dandpw)[1] <- "date" #looks like your date column might not be named
#ggplot prefers long format
dandpw <- dandpw %>% gather(variables, values, -date)
ggplot(data = dandpw, aes(x = date, y = values, color = variables)) +
 geom_line() + 
 coord_cartesian(ylim = c(0, max(dandpw$values, na.rm = T) * 1.1 ))
...