SPSS hasn't exactly been known for generating nice charts, although you really can do so by using your own chart templates. SPSS 25, however, allows you to “create great looking charts by default!”
This made me wonder: are the new charts really that great? The remainder of this article walks through the old and new looks for the big 5 charts in data analysis. All charts are based on bank_clean.sav and I'll include all syntax as well.
Overview “Big 5” Charts
Chart | Purpose |
---|---|
Histogram | Summarize Single Metric Variable |
Bar Chart Percentages | Summarize Single Categorical Variable |
Scatterplot | Show Association Between 2 Metric Variables |
Bar Chart Means by Category | Show Association Between Metric and Categorical Variable |
Stacked Bar Chart Percentages | Show Association Between 2 Categorical Variables |
1. Histogram
Histogram in SPSS 24I'm not a big fan of the old histogram: the colors depress me and there is insufficient room between the title (“Histogram”) and the top of the figure.
The font sizes of the tick labels and statistics summary are too small. Unfortunately, you can't omit the statistics summary by syntax but you can style it or hide it altogether with a chart template.
The new histogram has handy grid lines by default and much nicer colors. I still think some font sizes are too small but altogether, it's a huge step forward.
Histogram Syntax Example
frequencies whours
/format notable
/histogram.
2. Bar Chart Percentages
Bar Chart Percentages in SPSS 24What really puzzles me with SPSS bar charts is that they are not transposed by default. With few categories, the bars become awkwardly wide. With many categories, there's insufficient room for the tick labels.
Bar Chart Percentages in SPSS 25The new bar chart has much nicer styling. However, the bars are now even wider. I feel the transposed bar chart below works much better. Technically, it's the exact same chart as the previous examples, the only difference is that I applied a chart template. With this chart, I'll just increase or decrease its height, depending on the number of categories included.
Transposed Bar Chart with Chart TemplateBar Chart Percentages Syntax Example
GRAPH
/BAR(SIMPLE)=PCT BY gender
/TITLE "Frequency Distribution over Gender".
3. Scatterplot
Scatterplot in SPSS 24The old scatterplot has a rather depressing grey background and no gridlines. However, I do think circles tend to clutter less than dots and thus were a good choice.
Scatterplot in SPSS 25The new scatterplot has gridlines by default and a much nicer white background. However, I also feel the dots tend to clutter more than the old circles and it lacks color. If I need 50 shades of grey, I'll go and find myself a book shop.
Scatterplot Syntax Example
GRAPH
/SCATTERPLOT(BIVAR)=whours WITH salary
/MISSING=LISTWISE
/TITLE='Scatterplot Working Hours versus Salary'.
4. Bar Chart Means by Category
Bar Chart Means by Category in SPSS 24Apart from its dull styling: not transposing bar charts may leave little room for tick labels -in this case education levels. SPSS seems to “solve” the problem by using a very tiny font size that doesn't look nice and is hard to read.
Bar Chart Means by Category in SPSS 25The new bar chart has a much nicer styling: it uses a reasonable font size for the x-axis categories. However, a much smaller font size is used for the y-axis. I think this looks rather awkward.
Perhaps even more awkward is the large white space beneath the chart. It doesn't attract a lot of attention in the output viewer window. However, after copy-pasting the chart into a report, it becomes clear that this can't be intentional -or at least I hope it isn't.
Bar Chart Means by Category Syntax Example
GRAPH
/BAR(SIMPLE)=MEAN(salary) BY educ
/TITLE='Mean Salaries by Education Levels'.
5. Stacked Bar Chart Percentages
Stacked Bar Chart Percentages in SPSS 24Regarding the old stacked bar chart, I can't help but wonder: You gotta be kidding me, right? Wrong. No kidding. This chart survived through SPSS 24. I'm not even going to discuss the looks. What I do want to point out, is that the y-axis label says “Count” instead of “Percent”. For adding injury to insult, the percent suffix is also missing from the tick labels.
Stacked Bar Chart Percentages in SPSS 25The new version looks way better -especially the colors! A minor change to the chart builder dialog is that it adds a title by default to the syntax. Unfortunately, the title is wrong: the chart shows “job type by education”, not “education by job type”.
Note that the y-axis is appropriately labeled “Percent” in the new version but the percent suffix is still missing from the tick labels.
And once again, not transposing the chart leaves insufficient space for the tick labels which now had to be rotated and push down the x-axis label. Surely it's a matter of personal preference but I'd rather go for the layout shown below.
Stacked Bar Chart Percentages Syntax Example
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=educ COUNT()[name="COUNT"] jtype MISSING=LISTWISE
REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: educ=col(source(s), name("educ"), unit.category())
DATA: COUNT=col(source(s), name("COUNT"))
DATA: jtype=col(source(s), name("jtype"), unit.category())
GUIDE: axis(dim(1), label("Highest completed education level"))
GUIDE: axis(dim(2), label("Count"))
GUIDE: legend(aesthetic(aesthetic.color.interior), label("Current job type"))
SCALE: cat(dim(1), include("1", "2", "3", "4", "5", "6"))
SCALE: linear(dim(2), include(0))
SCALE: cat(aesthetic(aesthetic.color.interior), include("1", "2", "3", "4", "5"))
ELEMENT: interval.stack(position(summary.percent(educ*COUNT, base.coordinate(dim(1)))),
color.interior(jtype), shape.interior(shape.square))
END GPL.
*Stacked Bar Chart Percentages - Pasted from Chart Builder SPSS 25.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=educ COUNT()[name="COUNT"] jtype MISSING=LISTWISE
REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: educ=col(source(s), name("educ"), unit.category())
DATA: COUNT=col(source(s), name("COUNT"))
DATA: jtype=col(source(s), name("jtype"), unit.category())
GUIDE: axis(dim(1), label("Highest completed education level"))
GUIDE: axis(dim(2), label("Percent"))
GUIDE: legend(aesthetic(aesthetic.color.interior), label("Current job type"))
GUIDE: text.title(label("Stacked Bar Percent of Highest completed education level by Current ",
"job type"))
SCALE: cat(dim(1), include("1", "2", "3", "4", "5", "6"))
SCALE: linear(dim(2), include(0))
SCALE: cat(aesthetic(aesthetic.color.interior), include("1", "2", "3", "4", "5"))
ELEMENT: interval.stack(position(summary.percent(educ*COUNT, base.coordinate(dim(1)))),
color.interior(jtype), shape.interior(shape.square))
END GPL.
Subtitles and SPLIT FILE
Creating charts with SPLIT FILE on adds a subtitle to them. Since titles are centered by default, the logical place for the subtitle is right below the main title as shown below (“gender: female”).
Scatterplot with Subtitle in SPSS 25Alternatively, one could left align the main title and right align the subtitle as shown below. It looks nicer and makes better use of the available space.
Scatterplot with Subtitle with Chart TemplateConclusion
Most charts have seriously improved in SPSS 25. I like the gridlines and the new color cycles -except for the new scatterplots which are entirely grey. Nevertheless, I can't help but feel it was a bit of a hasty job with sometimes insufficient eye for detail.
Next, there's the question: what if I liked the old looks better? Or what if my client does not want these changes? I had a quick look around but I couldn't find any way for returning to the old looks. If they're really really gone, then this violates SPSS’ backwards compatibility.
The same goes for the new charts being wider (854 by 504 pixels) than the old charts (629 by 504 pixels). I sure hope the larger width still fits into the layout of any reports that need to be delivered.
So what do you think about the old and new charts? Please let me know by dropping a comment below.
Thanks!
THIS TUTORIAL HAS 9 COMMENTS:
By Malcolm Jazzbeaux on December 18th, 2018
Hi Jeff,
I'd love to see the GPL syntax you used to left align the left title and right align the right title. Also, Ruben mentions using the SET CTEMPLATE command. I can't tell where in the GPL (or maybe Ggraph) syntax this should be placed. Thank you very much!
By Ruben Geert van den Berg on December 19th, 2018
Hi Malcolm!
You can't do a lot of styling with GPL, you need a chart template for this. You activate a chart template with SET CTEMPLATE which is part of the SET command. This comes before the entire GGRAPH/GPL block.
Creating such a chart template is hard, you'll need to dive into its XML. We develop chart templates for our clients but we do charge for it.
Hope that helps!
SPSS tutorials
By Vibol Bo on February 21st, 2019
I think that is good for us to getting new update things.
By Martin Gail on September 13th, 2019
It has been observed that diagrams can explain the things in a better way. Your way of writing is awesome. You picked a good topic, so thank you for writing it.