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:

  1. Remove borders
  2. Move out the chart title
  3. Remove axis titles, include information in chart title (or subtitle)
  4. Remove obsolete axes & ticks (horizontal as well as vertical, depending on the chart type)
  5. Alter color scheme (switch from Office 2003 towards house style or modern palette)
  6. Reduce visual weight of context (axis labels, legends, lines, etc.)
  7. (if needed) enhance visual weight of important information
  8. 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
  • Gauges
  • Bar & column charts
  • Pie charts

Line charts

By default, line charts in SSRS have the tendency not only to look old-fashioned, but also to not being perfectly readable too:

TooMuchEmployees

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:

charts cleanup step1-4

Notice these three things:

  1. 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'
    linechartTickInterval
  2. 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'1.
    linechartMeaningfulLabels
  3. Removing tick marks is generally a good idea. However, with line charts I don't think you should remove the ones on the horizontal axis2

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:

NewColors

The final 'general' step (8, altering font style) makes it look truly modern:

ModernLineChart

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!.

Map charts

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, yay yuck!

initialchart

Most important steps to remove clutter here are:

  1. Remove duplicate legend (in a bubble chart, this is different of course, but here it's unneeded
  2. Remove gradients (For all elements: Properties -> Fill)
  3. Remove 'shadows' from underneath all blocks (For all elements: Properties -> Shadow -> Set offset to '0pt')

This leaves us with a more spacious chart:

clutterlessmap

Applying the 7 'generic' steps results in something we could even call nice:

output_PmbYXK

Notice that I changed from a three-color to a one-color-scale too. Stephanie Evergreen explains here why that's a good idea.

step11

Gauges

Although the need of gauges as a means of data visualization is questionable, let's act this time like you'd need one3.

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 gauges4.

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:

GaugesvsPowerBI

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.5
  • Alter font styles
  • Add a descriptive title

Result looks like this:

output_gSsN7f

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':

FinalResultGauge

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 here6:

Barchart_startvsend

If you're curious how these looks came into being, look at the first post in this series.

Pie charts

With regard to pie charts, here's the key trick to improving the looks:

  1. Select the chart (please make sure the entire chart is selected)
  2. Right-click -> Delete.

Done.

And if you're still wondering why, read more and save the pies for dessert.

Conclusion

That's it for today, folks! If anything, take these three thoughts with you:

  1. 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...
  2. Ever thought about using only one signal color, instead of multiple?
  3. Save the pies for dessert ;-).

 

Series: SSRS non-ugly

  1. SSRS non-ugly #1: Use of Typography and fonts
  2. SSRS non-ugly #2: Formatting Tables
  3. SSRS non-ugly #3: Chart Styles
  4. SSRS non-ugly #4: Think about Layout
  5. SSRS non-ugly #5: The Nitty Griddy Details
  6. SSRS non-ugly #6: Hard Work Pays Off: Aligning Matrices

Founder of this blog. Business Intelligence consultant, developer, coach, trainer and speaker at events. Currently working at Dura Vermeer. Loves to explain things, providing insight in complex issues. Watches the ongoing development of the Microsoft Business Intelligence stack closely. Keeping an eye on Big Data, Data Science and IoT.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

8 Comments

  1. Jesse

    Jesse

    excellent post Koos, must read for all SSRS developers

  2. Outstanding post, Koos. I've been reading the series and enjoying each post. Fantastic work on the radial gauge in particular! (And yes, one should consider a bullet graph - and you can create nice ones in SSRS - but if the pointy-haired boss insists...)

    Yes, we aim to make it much easier to create beautiful, modern visuals with SSRS 2016, but for the moment - and for existing reports - this series is shaping up to be an excellent resource. Looking forward to the next post!

    • Thanks, Riccardo! Can hardly think of a greater compliment :).

      The ongoing improvements you guys are making in SSRS 2016 are awesome. If you manage to keep up this pace of development we'll need a rolling release from 2016 on, simply because every other deployment cycle will be too slow ;-). Keep up the good work!

  3. Thierry

    Excellent blog entries. Great work.

  4. Tarkasband

    Nice work. Thanks, the information is really useful. I like the entire series. Implemented some styles in the SSRS 2012 charts. Higher management loved the report. Thanks again...

  5. Hi Koos,

    Great article! Thanks for your al your effort.

    SQL 2016 comes out on june 1st, and the developer edition is free! So then it will hopefully be easy to convince the boss-who-wants-gauges to upgrade to 2016 🙂

    Cheers, Edgar

  6. Narayan

    Very helpful...Thank you.

Next ArticleUsing views as a source