R 如何限制图形仅显示x轴正上方的点?

R 如何限制图形仅显示x轴正上方的点?,r,plot,xts,R,Plot,Xts,我目前有一个数据图,如下所示: 然而,由于2017年左右出现负峰值,图表显示了x轴上方和下方的值。如何使图形仅显示x轴上方的值 这是我目前用来生成图形的代码 绘图(dandpw) 添加图例(lty=1) 我的数据 >头部(dandpw) QLD1.价格NSW1.价格VIC1.价格SA1.价格TAS1.价格 2008-01-07 10:30:00 33.81019 36.52777 49.66935 216.45379 30.88968 2008-01-14 10:30:00

我目前有一个数据图,如下所示:

然而,由于2017年左右出现负峰值,图表显示了x轴上方和下方的值。如何使图形仅显示x轴上方的值

这是我目前用来生成图形的代码

绘图(dandpw)
添加图例(lty=1)

我的数据
>头部(dandpw)
QLD1.价格NSW1.价格VIC1.价格SA1.价格TAS1.价格
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
(只有图片),我假设您的数据位于数据帧中

  • 可以从数据集中删除负数
  • 您可以在图表中显示的y轴上设置限制(使用
    ggplot2
  • 方法1(不推荐,因为它会改变您的数据):

    #取下底片并替换为NA。如果需要,也可以替换为0
    
    dandpw[dandpw<0]您是否可以包含来自
    dput(head(dandpw))
    的输出?更容易粘贴到R>dput(head(dandpw))结构(c(33.8101941747573, 45.0932142857143, 27.225505952381, 26.1428273809524, 91.8696130952381, 62.6060714285714, 36.5277669902913, 37.558869047619, 29.5779761904762, 27.321130952381, 36.77, 28.8350892857143, 49.6693527508091, 49.0415476190476, 31.2893452380952, 30.2047023809524, 37.0902678571429, 34.9586607142857, 216.453786407767, 248.335178571429, 31.5615773809524, 31.9004166666667, 37.5716666666667, 35.1821726190476, 30.8896763754045, 51.1605654761905, 45.9922619047619, 53.4816964285714, 56.2846428571429, 55.7896130952381),注释不是读取dput的最简单方法,而且您的某些输出似乎被截断。您是否可以编辑您的问题以包含dput输出?是的,还有dput的含义在R中键入“?dput()”&按enter键。
    #remove negatives and replace with NA. Can also replace with 0 if desired
    dandpw[dandpw < 0] <- NA
    
    #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 ))