Could you provide some information on your data structure (e.g., are the two time series in separate columns in the data)? The solution is fairly straightforward once you have the data in the right structure. And I do not think tidyquant is necessary for what you want. Best, Charlie -- Charles Redmon GRA, Center for Research Methods and Data Analysis PhD Student, Department of Linguistics University of Kansas Lawrence, KS, USA
Hi Charlie,
I am comfortable to put the data in any way that works best. Here are two
possibilities: an xts and a data frame.
library(quantmod)
quantmod::getSymbols("SPY") # creates xts variable SPY
SPYxts <- SPY[,c("SPY.Close","SPY.Volume")]
SPYdf <- data.frame(Date=index(SPYxts),close=as.numeric(SPYxts$SPY.Close),
volume=as.numeric(SPYxts$SPY.Volume))
rownames(SPYdf) <- NULL
head(SPYxts)
head(SPYdf)
# SPY.Close SPY.Volume
#2007-01-03 141.37 94807600
#2007-01-04 141.67 69620600
#2007-01-05 140.54 76645300
#2007-01-08 141.19 71655000
#2007-01-09 141.07 75680100
#2007-01-10 141.54 72428000
# Date close volume
#1 2007-01-03 141.37 94807600
#2 2007-01-04 141.67 69620600
#3 2007-01-05 140.54 76645300
#4 2007-01-08 141.19 71655000
#5 2007-01-09 141.07 75680100
#6 2007-01-10 141.54 72428000
Thanks,
Eric
On Thu, Jan 18, 2018 at 8:00 PM, Charlie Redmon <redmonc at gmail.com>
wrote:
> Could you provide some information on your data structure (e.g., are the
> two time series in separate columns in the data)? The solution is fairly
> straightforward once you have the data in the right structure. And I do not
> think tidyquant is necessary for what you want.
>
> Best,
> Charlie
>
> --
> Charles Redmon
> GRA, Center for Research Methods and Data Analysis
> PhD Student, Department of Linguistics
> University of Kansas
> Lawrence, KS, USA
>
>
[[alternative HTML version deleted]]
If you don't want to wait for a ggplot2 solution, here are two alternatives you can use right now: chartSeries(SPYxts) # or (with xts > 0.10 plot(SPYxts$SPY.Close) addSeries(SPYxts$SPY.Volume, type = "h") You might also try autoplot.zoo(), though I've never used it. On Thu, Jan 18, 2018 at 2:11 PM, Eric Berger <ericjberger at gmail.com> wrote:> Hi Charlie, > I am comfortable to put the data in any way that works best. Here are two > possibilities: an xts and a data frame. > > library(quantmod) > quantmod::getSymbols("SPY") # creates xts variable SPY > SPYxts <- SPY[,c("SPY.Close","SPY.Volume")] > SPYdf <- data.frame(Date=index(SPYxts),close=as.numeric(SPYxts$SPY.Close), > volume=as.numeric(SPYxts$SPY.Volume)) > rownames(SPYdf) <- NULL > > head(SPYxts) > head(SPYdf) > > # SPY.Close SPY.Volume > #2007-01-03 141.37 94807600 > #2007-01-04 141.67 69620600 > #2007-01-05 140.54 76645300 > #2007-01-08 141.19 71655000 > #2007-01-09 141.07 75680100 > #2007-01-10 141.54 72428000 > > # Date close volume > #1 2007-01-03 141.37 94807600 > #2 2007-01-04 141.67 69620600 > #3 2007-01-05 140.54 76645300 > #4 2007-01-08 141.19 71655000 > #5 2007-01-09 141.07 75680100 > #6 2007-01-10 141.54 72428000 > > Thanks, > Eric > > > > On Thu, Jan 18, 2018 at 8:00 PM, Charlie Redmon <redmonc at gmail.com> wrote: > >> Could you provide some information on your data structure (e.g., are the >> two time series in separate columns in the data)? The solution is fairly >> straightforward once you have the data in the right structure. And I do not >> think tidyquant is necessary for what you want. >> >> Best, >> Charlie >> >> -- >> Charles Redmon >> GRA, Center for Research Methods and Data Analysis >> PhD Student, Department of Linguistics >> University of Kansas >> Lawrence, KS, USA >> >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Joshua Ulrich | about.me/joshuaulrich FOSS Trading | www.fosstrading.com R/Finance 2018 | www.rinfinance.com
So the general strategy for getting these into separate panels in ggplot
is to have a single variable that will be your response and a factor
variable that indexes which original variable it came from. This can be
accomplished in many ways, but the way I use is with the melt() function
in the reshape2 package.
For example,
library(reshape2)
plotDF <- melt(SPYdf,
??? ??? ??? ??? ??? ??? id.vars="Date", # variables to replicate
??? ??? ??? ??? ??? ??? measure.vars=c("close", "volume"),
# variables
to create index from
??? ??? ??? ??? ??? ??? variable.name="parameter", # name of new
variable for index
??? ??? ??? ??? ??? ??? value.name="resp") # name of what will be
your
response variable
Now the ggplot2 code:
library(ggplot2)
ggplot(plotDF, aes(x=Date, y=resp)) +
??? facet_wrap(~parameter, ncol=1, scales="free") +
??? geom_line()
Hope that does the trick!
Charlie
On 01/18/2018 02:11 PM, Eric Berger wrote:> Hi Charlie,
> I am comfortable to put the data in any way that works best. Here are
> two possibilities: an xts and a data frame.
>
> library(quantmod)
> quantmod::getSymbols("SPY")? # creates xts variable SPY
> SPYxts <- SPY[,c("SPY.Close","SPY.Volume")]
> SPYdf? <-
> data.frame(Date=index(SPYxts),close=as.numeric(SPYxts$SPY.Close),
> ?volume=as.numeric(SPYxts$SPY.Volume))
> rownames(SPYdf) <- NULL
>
> head(SPYxts)
> head(SPYdf)
>
> #? ? ? ? ? ?SPY.Close SPY.Volume
> #2007-01-03? ? 141.37? ?94807600
> #2007-01-04? ? 141.67? ?69620600
> #2007-01-05? ? 140.54? ?76645300
> #2007-01-08? ? 141.19? ?71655000
> #2007-01-09? ? 141.07? ?75680100
> #2007-01-10? ? 141.54? ?72428000
>
> #? ? ? ? Date? close? ?volume
> #1 2007-01-03 141.37 94807600
> #2 2007-01-04 141.67 69620600
> #3 2007-01-05 140.54 76645300
> #4 2007-01-08 141.19 71655000
> #5 2007-01-09 141.07 75680100
> #6 2007-01-10 141.54 72428000
>
> Thanks,
> Eric
>
>
>
> On Thu, Jan 18, 2018 at 8:00 PM, Charlie Redmon <redmonc at gmail.com
> <mailto:redmonc at gmail.com>> wrote:
>
> Could you provide some information on your data structure (e.g.,
> are the two time series in separate columns in the data)? The
> solution is fairly straightforward once you have the data in the
> right structure. And I do not think tidyquant is necessary for
> what you want.
>
> Best,
> Charlie
>
> --
> Charles Redmon
> GRA, Center for Research Methods and Data Analysis
> PhD Student, Department of Linguistics
> University of Kansas
> Lawrence, KS, USA
>
>
--
Charles Redmon
GRA, Center for Research Methods and Data Analysis
PhD Student, Department of Linguistics
University of Kansas
Lawrence, KS, USA