Hi,
How can I plot a daily time series?
I tried the code below, but freq
input support (monthly, quarterly and yearly).
Thanks in advance!
dstart = 201501;
freq = 12 ;
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
plotSetXTicInterval(&myPlot, 365, 201501);
plotSetXTicLabel(&myPlot, "YYYY-QQ");
plotTS(myPlot, dstart, freq, y);
and these
struct plotControl myPlot;
myplot = plotGetDefaults("XY");
// Turn off grid
plotSetGrid(&myPlot, "off");
// Set the title text, font and font-size
plotSetTitle(&myPlot, "U.S. Wholesale Price Index ", "Helvetica Neue", 18);
// Set the Y-axis text, font and font-size
plotSetYLabel(&myPlot, "ln(wpi)", "Helvetica Neue", 14);
// Set the X-tick label format to 4 digit year
plotSetXTicLabel(&myPlot, "YYYY");
// Place an X-tick every 5 years (20 quarters),
// starting with January of 1960
plotSetXTicInterval(&myPlot,4, 2015);
// Draw the plot, using the settings
// in 'myPlot'
plotTS(myPlot, 2015, 4, y);
plotTS(201501, 1/365, y);
2 Answers
0
You have two options for plotting daily data in GAUSS.
- Starting in GAUSS version 19,
plotTS
can now plot daily data, as well as monthly, quarterly and yearly data. - GAUSS 19 also introduced a new function
plotTSHF
which can plot data which is daily, hourly, or by minute, second or hundredths of a second.
The main difference is that plotTS
takes time in DT Scalar format, whereas plotTSHF
requires the date arguments to be POSIX times.
Plot of daily data with plotTS
/*
** January 5th, 8th, 9th, 10th
** of the year 1986. At hour 00,
** minute 00, second 00
**
** In DT Scalar format
*/
dt = { 19860105000000,
19860108000000,
19860109000000,
19860110000000 };
y = { 0.05,
0.84,
0.40,
0.75 };
plotTS(dt, "days", y);
Plot of daily data with plotTSHF
/*
** January 5th, 8th, 9th, 10th
** of the year 1986. At hour 00,
** minute 00, second 00
**
** As POSIX time
*/
dt = { 505267200,
505526400,
505612800,
505699200 };
y = { 0.05,
0.84,
0.40,
0.75 };
plotTSHF(dt, "days", y);
You may find this blog post about plotting high-frequency data with plotTSHF
helpful. There is also a blog post about reading dates and times which you can find here.
0
Brilliant, Thanks very much.
Your Answer
2 Answers
You have two options for plotting daily data in GAUSS.
- Starting in GAUSS version 19,
plotTS
can now plot daily data, as well as monthly, quarterly and yearly data. - GAUSS 19 also introduced a new function
plotTSHF
which can plot data which is daily, hourly, or by minute, second or hundredths of a second.
The main difference is that plotTS
takes time in DT Scalar format, whereas plotTSHF
requires the date arguments to be POSIX times.
Plot of daily data with plotTS
/*
** January 5th, 8th, 9th, 10th
** of the year 1986. At hour 00,
** minute 00, second 00
**
** In DT Scalar format
*/
dt = { 19860105000000,
19860108000000,
19860109000000,
19860110000000 };
y = { 0.05,
0.84,
0.40,
0.75 };
plotTS(dt, "days", y);
Plot of daily data with plotTSHF
/*
** January 5th, 8th, 9th, 10th
** of the year 1986. At hour 00,
** minute 00, second 00
**
** As POSIX time
*/
dt = { 505267200,
505526400,
505612800,
505699200 };
y = { 0.05,
0.84,
0.40,
0.75 };
plotTSHF(dt, "days", y);
You may find this blog post about plotting high-frequency data with plotTSHF
helpful. There is also a blog post about reading dates and times which you can find here.
Brilliant, Thanks very much.