1

我做了一个图表,我希望能够用线条在图表中显示当天的值。

这是我的代码:

dratio_main <- merge(rolling.dratio.10$Daily, rolling.dratio.21$Daily, rolling.dratio.63$Daily, rolling.dratio.126$Daily, rolling.dratio.252$Daily)
dratio_main <- data.frame(times=time(dratio_main),dratio_main)
names(dratio_main) <- c('Date','D10','D21','D63', 'D126', 'D252')
dratiolatest <- dratio_main[nrow(dratio_main),4:6]

dratiodf <- melt(dratio_main,
                 id.vars = "Date",
                 variable.name = "Type",
                 value.name = "Value")

dratiodf_2 <- filter(dratiodf, Type == c("D63",'D126','D252'))

ggplot(dratiodf_2, aes(x=Value))+
  stat_ecdf(geom = "step")+
  facet_wrap(.~Type)+
  geom_vline(data = dratiolatest,xintercept = dratiolatest,na.rm = T)+
  coord_cartesian(xlim=c(0,4))+
  theme_economist()

以下是部分内容dratiodf_2

22  2013-10-24  D63 2.3506257
23  2013-10-29  D63 2.1868155
24  2013-11-01  D63 1.7831371
25  2013-11-06  D63 1.2590704
26  2013-11-11  D63 0.9328020
27  2013-11-14  D63 1.0349820
28  2013-11-19  D63 1.1082279

这个想法是,然后在后面的列中,您会得到相同的结果,但是“D36”列已更改为另一个时期,并且具有该值的列已更改为该时期的不同值。

这里是dratiolatest

               D63      D126      D252
2019-10-01 0.9085238 0.7253774 0.7516055

这些是每个时期的最新值。

现在我的问题是如何制作,以便在每个方面都有线条,显示该方面的最新值?

我尝试了各种想法geom_vlinestat_summaryh但它们只是不会出现,或者以多面格式出现。

感谢您的宝贵时间,无论您的回答能力如何。

4

1 回答 1

0

(如果我正确地理解了你的问题),长格式的dratiolatestlikedratiodf_2给出了你想要的。

library(tidyr)

dratiolatest_long <- dratiolatest %>% gather("Type", "Value", -Date)

ggplot(a, aes(x=Value))+
  stat_ecdf(geom = "step")+
  facet_wrap(.~Type)+
  geom_vline(data = dratiolatest_long, aes(xintercept = Value))+  # modified line
  coord_cartesian(xlim=c(0,4))+
  theme_economist()
于 2019-10-03T01:59:35.157 回答