SSRS non-ugly #3: Chart styles

Dataviz / SSRS

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:


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'
  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'[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].
  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 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!.

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!


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:


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]


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.

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.


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


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

Comments (8)

  1. Jesse

    excellent post Koos, must read for all SSRS developers

    1. Thanks, buddy! Looking forward to new posts from your hand :).

  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!

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

Comments are closed.