Search code examples
data-visualizationspss

How to plot a linegraph in SPSS with respect to the data?


enter image description here

Hi all,

Above you'll see a line-graph plotted with SPSS. I want to improve this line-graph according to its data. Meaning that some elements are not presented correctly:

(1) I deliberately adjusted the scaling on the Y-axis from -1 to 10, in order to notice the breaks (i.e. missing values) in the line graph. Otherwise you'll not notice the breaks, as it will overlap with the bottom-line of the graph. Is it possible to notice the breaks, but with a scaling of 0 to 10 (in SPSS)? > SOLVED

(2) On the X-axis, point 14 and 15 are missing, hence the break. However, the line graph shows an upward trend just after point 13, and a downward trend just before point 16. Is it possible to adjust the line-graph (in SPSS), which would delete these described (interpolation) trends?

GGRAPH
  /GRAPHDATASET NAME="graphdataset" VARIABLES=Time_Period_Hours
    MEAN(MT)[name="MEAN_MT"] MISSING=VARIABLEWISE REPORTMISSING=NO
  /GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
  SOURCE: s=userSource(id("graphdataset"))
  DATA: Time_Period_Hours=col(source(s), name("Time_Period_Hours"), unit.category())
  DATA: MEAN_MT=col(source(s), name("MEAN_MT"))
  GUIDE: axis(dim(2), delta(1))
  SCALE: linear(dim(2), min(-0.5), max(9))
  ELEMENT: line(position(Time_Period_Hours*MEAN_MT))
  ELEMENT: point(position(Time_Period_Hours*MEAN_MT), color(color.black), 
                 size(size."3px"))
END GPL.

Solution

  • Here is an example, for the line element you need to specify the option missing.gap() - I thought just deleting missing.wings() from the default code would work but maybe it is an internal default. You may want to consider changing Time_Period_Hours to a scale variable and doing the aggregation outside of GGRAPH. Also making the Y axis scale in your example go all the way up to 9 seems a bit superfluous.

    DATA LIST FREE / Time_Period_Hours MT.
    BEGIN DATA
    1 1
    2 0
    3 0
    4 0
    5 1
    6 0
    7 0
    8 0
    9 0
    10 0
    11 .
    12 0
    13 0
    14 .
    15 .
    16 1
    17 0
    18 0
    19 0
    20 .
    21 0
    END DATA.
    FORMATS Time_Period_Hours MT (F2.0).
    GGRAPH
      /GRAPHDATASET NAME="graphdataset" VARIABLES=Time_Period_Hours
        MEAN(MT)[name="MEAN_MT"] MISSING=VARIABLEWISE REPORTMISSING=NO
      /GRAPHSPEC SOURCE=INLINE.
    BEGIN GPL
      SOURCE: s=userSource(id("graphdataset"))
      DATA: Time_Period_Hours=col(source(s), name("Time_Period_Hours"), unit.category())
      DATA: MEAN_MT=col(source(s), name("MEAN_MT"))
      GUIDE: axis(dim(2), delta(1))
      SCALE: linear(dim(2), min(-0.5), max(9))
      ELEMENT: line(position(Time_Period_Hours*MEAN_MT), missing.gap())
      ELEMENT: point(position(Time_Period_Hours*MEAN_MT), color(color.black), 
                     size(size."3px"))
    END GPL.
    

    enter image description here