SSRS non-ugly #3: Chart styles29 oktober 2015 2021-10-13 9:19
SSRS non-ugly #3: Chart styles
This is the third post in a new series on non-ugly SSRS reports. As I stated in the opening post:
SSRS doesn't have to be ugly
This week, lots of folks are tweeting and blogging about the new SSRS 2016. Exciting stuff, looks really great! But what about when you're still stuck with one of the RTM versions of SSRS? Can you improve the looks of your old SSRS versions too? In this blog series I'll dive into this.
In part 1 (the use of typography & fonts), we already touched some graph styling issues in this post, so you'd wonder what is left to say about chart styling. Read on, & you'll know 🙂
The mantra started in earlier posts applies across all chart types here too: remove clutter, use typography and color intensity for content and pay attention to visual weight. In general, all charts can be formatted in the same pattern:
- Remove borders
- Move out the chart title
- Remove axis titles, include information in chart title (or subtitle)
- Remove obsolete axes & ticks (horizontal as well as vertical, depending on the chart type)
- Alter color scheme (switch from Office 2003 towards house style or modern palette)
- Reduce visual weight of context (axis labels, legends, lines, etc.)
- (if needed) enhance visual weight of important information
- Alter font style (trade in Arial for a more modern one, make use of different size and/or color)
I'll provide samples for five categories of charts:
- Line charts
- Map charts
- Bar & column charts
- Pie charts
By default, line charts in SSRS have the tendency not only to look old-fashioned, but also to not being perfectly readable too:
Applying the 'general rules' from above changes the chart like as follows:
Step 1-4 (remove borders, move out chart title, remove obsolete axis titles, remove obsolete axes & ticks) results in a somewhat 'cleaner' look. Still, the readability of quarters on the horizontal axis is not that good:
Notice these three things:
- By default, SSRS hides some categorical labels, even if it isn't strictly necessary. You can override this by setting Axis Properties -> Interval from 'Auto' to '1'
- Make labels more meaningful. When reading '1 2 3 4' it isn't immediately visible this is about quarters - could be weeks or months too. Make the labels read 'Q1' to 'Q4'[ref]Maybe it's even better to name '2006 Q1' instead of these extra lines year-groups, but I'm not sure about that. It creates a lot of new label text which takes up visual space.[/ref].
- Removing tick marks is generally a good idea. However, with line charts I don't think you should remove the ones on the horizontal axis[ref]I think that the motion of the line is displayed quite prominently, which results in a need for visual aid for my brain needing in order to imagine perfect vertical or horizontal lines to 'read' the chart to its categories and labels. Horizontally this visual aid is provided by the grid lines, vertically it is given by connecting the labels to the horizontal axis by using tick marks. Maybe this has something to do with Gestalt psychology and the principle of continuity? I'm not an expert on that, so please correct me if I'm wrong![/ref]
The most dramatic improvements here are steps 6 and 7: reducing the visual weight of context (labels, ticks, gridlines, legends) while enlarging the visual weight of the content (i.e. the chart's lines). It's quite easy - pick greyscale for labels (more black = more important), and give the chart's lines a point 2 instead of 1. In the results below I used a new colorscheme too, but you would've hardly recognized any colors without thicker lines anyway:
The final 'general' step (8, altering font style) makes it look truly modern:
However, there is one major improvement that's neglected here: reduce the amount of information shown - why are you showing all your Sales Employees in one chart? Why are we showing all years and quarters? Food for thought, which I'll cover in another post - stay tuned!.
The most important lesson with map charts is: reduce clutter. No other chart is so obviously pre-loaded with loads and loads of old-fashioned eye-candy. Gradients,
Most important steps to remove clutter here are:
- Remove duplicate legend (in a bubble chart, this is different of course, but here it's unneeded
- Remove gradients (For all elements: Properties -> Fill)
- Remove 'shadows' from underneath all blocks (For all elements: Properties -> Shadow -> Set offset to '0pt')
This leaves us with a more spacious chart:
Applying the 7 'generic' steps results in something we could even call nice:
Notice that I changed from a three-color to a one-color-scale too. Stephanie Evergreen explains here why that's a good idea.
Although the need of gauges as a means of data visualization is questionable, let's act this time like you'd need one[ref]Personally I'd recommend against using using this kind of visualization, but it appears executives like this one especially, maybe because of the car dashboard analogy where all relevant data is right on time. [/ref].
Update (2015-10-30 14:21): I told you the use of gauges is questionable, but I didn't tell you how to do it better. Luckily, Koen Verbeeck pointed out kindly to me that using bullet charts is a much better way of visualizing your targets than using gauges[ref]
@kvstrien thanks for the shout-out! One remark: gauges should be transformed to bullet graphs.
— Koen Verbeeck #BLM 🌈 (@Ko_Ver) October 30, 2015
I'll cover these in another post, but for now, be warned not to use gauges (and forgive me for leading you into temptation of using bad data visualization). In the meantime, it's still interesting to see how the 'old fashioned' gauges in SSRS could look much better, almost like the Power BI gauges..
SSRS offers out-of-the box Gauge and KPI functionality - but you could say that the way of dressing these has changed a little bit if you compare the SSRS built-in gauges with the Power BI ones:
Is it possible to make the SSRS gauge look more modern? Or maybe even to look like the Power BI one? Let's try! Here's what I've done:
- Set the frame style to 'None'
- Disable all tick marks on the scale
- Disable label rotation
- Change pointer to 'radial'
- Remove the visual clutter from the pointer
- Disable gradient
- Give it a decent color from your color scheme
- Remove shadow
- Set the scale interval to the same value as the scale maximum
- Set the scale width to the same value as the pointer width (say 20%)
- Give it a gray color
- Move scale labels outside of the scale
- Reduce the scale radius to a smaller percentage (for example, 45%)
- Place the pointer across the scale (instead of 'inside')
- Fix the markup of labels
- Remove the Range
- Add label width the value of the marker.[ref]It's a pity that you can't use the default SSRS number formatting functionality in this label. The expressions Format-function works normally though, so you can use that here.[/ref]
- Alter font styles
- Add a descriptive title
Result looks like this:
One disappointment: as far as I can see, there's no way to align the baseline of the scale labels with the start / end of the scale (apart from hiding the scale labels and adding two labels manually). If you know of a way, please let me know too! Still, I think the mission of making the gauge look more modern can be marked 'accomplished':
As a final hint: try playing around with the width of the gauge combined with the scale radius. It will give you more flexibility than you'd think before :).
Bar & Column charts
I've written some quick improvements regarding bar & column charts in my first post, so let's just show the difference here[ref]Maybe I'll add an animated gif later on, for now 'just' the difference in one image[/ref]:
If you're curious how these looks came into being, look at the first post in this series.
With regard to pie charts, here's the key trick to improving the looks:
- Select the chart (please make sure the entire chart is selected)
- Right-click -> Delete.
That's it for today, folks! If anything, take these three thoughts with you:
- How much data do you really need to show in one visual? Maybe the fact that 'all employees' in a chart lead to a cluttered chart isn't a bad thing...
- Ever thought about using only one signal color, instead of multiple?
- Save the pies for dessert ;-).
Series: SSRS non-ugly