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!