Dear all,
I would like to plot my quarterly data, so I used the following command lines:
new;
load x[272,6] = data.txt;
frq = x[., 1];
gdp = x[., 2];
period = dttostr(frq, "YYYY-QQ");
plotScatter(period, gdp);
the column frq contains quarterly dates (194701, 194704, .... 201410). I can print period
(1947-Q1, ... , 2014-Q4), but I cannot plot period
and gdp
.
Following error output appears:
error G0644: Input 1 of wrong type.
If I plot frq
and gdp
then it works but on the x-axis, I get values 194700, 195500, .... 201000.
Can someone give me an advice for the settings of the x-axis?
Many Thanks in advance. I appreciate your time and consideration.
Benjamin
6 Answers
1
Have you tried 'plotTS'?
new;
load x[272 ,6] = data.txt;
first_date = x[1, 1];
gdp = x[., 2];
freq = 4; //number of periods per year
plotTS(first_date, freq, gdp);
1
You can use the function plotSetXTicInterval
to set the first date to be labeled and how often you would like a label to show up. For example, we could modify the program above like this:
new;
load x[272 ,6] = data.txt;
first_date = x[1, 1];
gdp = x[., 2];
// number of periods per year
freq = 4;
// declare plotControl structure
// and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// first date to label
first_labeled = 1950;
// how often to set a label
// 4 quarters per year * 10 years = 40
tic_interval = 40;
// apply tic label settings to structure
plotSetXTicLabel(&myPlot, first_labeled, tic_interval);
// Call plotting function using plotControl structure
plotTS(myPlot, first_date, freq, gdp);
0
thank you very much for this hint! It works!
On the x-axis I have the follwing dates: 1947-Q1, 1953-Q4, 1960-Q3, 1967-Q2, ...
Does a command exist to get the dates - for example in a ten year intervall - on the x-axis like 1950-Q1, 1960-Q1, 1970-Q1, ... 2014-Q1?
Thank you
0
Thank you for your advice. I used this modified code, but it didn't work. Alternatively I used the following program to get what I wanted:
new;
load x[272, 6] = data.txt;
gc = x[., 6];
// gc in logarithm
ln_gc = ln(gc);
// declare plotControl structure and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// x-axis (time-axis): 1947-Q1 - 2014-Q4
t = seqa(1947, 0.25, 272);
// Set the x-axis label
plotsetxlabel(&myplot, "Period");
// Set the y-axis label
plotsetylabel(&myplot, "gc");
// Set legend
plotSetLegend(&myPlot, "gc");
// plot of data
plotXY(myPlot, t, ln_gc);
The program worked in GAUSS V13 fine. The older Version GAUSS V12 generated the same graph, but on the x-axis (time axis) I get the yearly data 1.950 1.960 1.970 ... instead of 1950 1960 1970 (without a dot as in V13) and on the y-axis percentage values with "comma" instead of points (e.g. 6,7 instead of 6.7 as in V13). Can someone give me a hint, how to get the same label setting in V12 as in V13? Thank you very much.
0
Which version of GAUSS 12 are you using?
Since I don't have your data, I made a slight modification. The exact code I used is below for reference:
gc = seqm(1, 2, 272);
// gc in logarithm
ln_gc = ln(gc);
// declare plotControl structure and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// x-axis (time-axis): 1947-Q1 - 2014-Q4
t = seqa(1947, 0.25, 272);
// Set the x-axis label
plotsetxlabel(&myplot, "Period");
// Set the y-axis label
plotsetylabel(&myplot, "gc");
// Set legend
plotSetLegend(&myPlot, "gc");
// plot of data
plotXY(myPlot, t, ln_gc);
0
Thank you for this answer! I am using the version 12.1.6 for Windows 32-bit. I couldn't find the source of this problem with my version. I appreciate yor time and consideration!
Your Answer
6 Answers
Have you tried 'plotTS'?
new;
load x[272 ,6] = data.txt;
first_date = x[1, 1];
gdp = x[., 2];
freq = 4; //number of periods per year
plotTS(first_date, freq, gdp);
You can use the function plotSetXTicInterval
to set the first date to be labeled and how often you would like a label to show up. For example, we could modify the program above like this:
new;
load x[272 ,6] = data.txt;
first_date = x[1, 1];
gdp = x[., 2];
// number of periods per year
freq = 4;
// declare plotControl structure
// and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// first date to label
first_labeled = 1950;
// how often to set a label
// 4 quarters per year * 10 years = 40
tic_interval = 40;
// apply tic label settings to structure
plotSetXTicLabel(&myPlot, first_labeled, tic_interval);
// Call plotting function using plotControl structure
plotTS(myPlot, first_date, freq, gdp);
thank you very much for this hint! It works!
On the x-axis I have the follwing dates: 1947-Q1, 1953-Q4, 1960-Q3, 1967-Q2, ...
Does a command exist to get the dates - for example in a ten year intervall - on the x-axis like 1950-Q1, 1960-Q1, 1970-Q1, ... 2014-Q1?
Thank you
Thank you for your advice. I used this modified code, but it didn't work. Alternatively I used the following program to get what I wanted:
new;
load x[272, 6] = data.txt;
gc = x[., 6];
// gc in logarithm
ln_gc = ln(gc);
// declare plotControl structure and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// x-axis (time-axis): 1947-Q1 - 2014-Q4
t = seqa(1947, 0.25, 272);
// Set the x-axis label
plotsetxlabel(&myplot, "Period");
// Set the y-axis label
plotsetylabel(&myplot, "gc");
// Set legend
plotSetLegend(&myPlot, "gc");
// plot of data
plotXY(myPlot, t, ln_gc);
The program worked in GAUSS V13 fine. The older Version GAUSS V12 generated the same graph, but on the x-axis (time axis) I get the yearly data 1.950 1.960 1.970 ... instead of 1950 1960 1970 (without a dot as in V13) and on the y-axis percentage values with "comma" instead of points (e.g. 6,7 instead of 6.7 as in V13). Can someone give me a hint, how to get the same label setting in V12 as in V13? Thank you very much.
Which version of GAUSS 12 are you using?
Since I don't have your data, I made a slight modification. The exact code I used is below for reference:
gc = seqm(1, 2, 272);
// gc in logarithm
ln_gc = ln(gc);
// declare plotControl structure and fill it with default settings
struct plotControl myPlot;
myPlot = plotGetDefaults("xy");
// x-axis (time-axis): 1947-Q1 - 2014-Q4
t = seqa(1947, 0.25, 272);
// Set the x-axis label
plotsetxlabel(&myplot, "Period");
// Set the y-axis label
plotsetylabel(&myplot, "gc");
// Set legend
plotSetLegend(&myPlot, "gc");
// plot of data
plotXY(myPlot, t, ln_gc);
Thank you for this answer! I am using the version 12.1.6 for Windows 32-bit. I couldn't find the source of this problem with my version. I appreciate yor time and consideration!