Branding guidelines | Charting guidelines | Coding guidelines
At the Observatory, we strive to follow current best practices to stay up to date with recent developments of the rapidly-changing world of data visualisation. We maintain a set of guidelines that we use internally for designing our visualisations - but they are also free to share and please feel free to raise an Issue if you have any suggestions, everyone and everything is welcome! π Why do we think this is important? - I'll let dataviz economist Jonathan Schwabish, author of Better Data Visualizations do the convincing.
Banner | ![]() |
---|---|
Social header | ![]() |
Square icon | ![]() |
Square brandmark | ![]() |
Icon dark | ![]() |
Icon light | ![]() |
Logo dark | ![]() |
Logo light | ![]() |
Background dark | ![]() |
Background light | ![]() |
Pattern dark | ![]() |
Pattern light | ![]() |
You will find all logo source files in this folder.
Logo | Circular, sans-oserif | ![]() |
---|---|---|
Primary | Spectral Light, serif | ![]() |
Secondary | Work Sans, sans-serif | ![]() |
Title | Spectral, serif | |
Subtitle | Work Sans, sans-serif | |
Headings | Work Sans, sans-serif | |
Subheadings | Spectral, sans-serif |
You will find all the font source files in this folder.
The two main colors we always use are the logo colors:
ECO dot |
#F4134D |
rgb(244,19,77) |
---|---|---|
ECO background |
#122B39 |
rgb(18,43,57) |
Legacy logo colors that we do not use anymore, but you may still find on some of our older charts:
ECO red |
#E54753 |
rgb(229,71,83) |
---|---|---|
ECO blue |
#243B5A |
rgb(36,59,90) |
On top of this, we try to limit our color palette to the following 9 colors, in this order of preference:
ECO turquiose |
#36B7B4 |
rgb(54,183,180) |
---|---|---|
ECO pink |
#E6224B |
rgb(230,34,75) |
ECO yellow |
#F4C245 |
rgb(244,194,69) |
ECO mid-blue |
#0063AF |
rgb(0,99,175) |
ECO green |
#00A767 |
rgb(0,167,103) |
ECO light-blue |
#179FDB |
rgb(23,159,219) |
ECO orange |
#EB5C2E |
rgb(235,92,46) |
ECO purple |
#5C267B |
rgb(92,38,123) |
ECO dark-blue |
#122B39 |
rgb(18,43,57) |
On top of this, we have one service colour:
ECO gray |
#676A86 |
rgb(103,106,134) |
---|
Axes, tick marks, tick labels, grids and axis labels are always drawn in ECO gray
. Unless encoded to represent a data category, annotations also use ECO gray
.
You will find json
files for each of these color scales, as well as the ECO
color names in this folder.
If you are not an alien π½ who can read hex codes natively, we prefer the HSL, or even better, the HCL (sometimes called CIELuv) color space, for which hclwizard is a good and HSLuv is even better tool. If we need to just quickly generate a custom but still beautiful color scale, the more generic tools we love are:
- The one and only ColorBrewer
- Colorcet in Anaconda's Holoviz package
- Coolors for generating beautiful 5-color palette quickly
- Paletton for generating beautiful color palette scientifically
- ColorSpace for generating beautiful palettes from a seed color
- Adobe Color
If any chart needs custom colour opacity levels, the preferred way is to use the rgba
codes from the color table, with an alpha
value between 0.3
and 0.9
.
- The default opacity for bar charts is
0.8
. - The default opacity for area charts is
0.8
. If possible, area charts will carry an opacity gradient between0
and0.9
, from base to peak, with a gradient angle of ~60-70 degrees.
Our preferred line-style
is always solid β¬ 2px
. Secondary lines are shown in solid β 1px
, tertiary lines are shown in dashed -- 1px
, while quaternary lines are dotted Β·Β·Β· 1px
. It is always desirable to change the color
attribute first to differentiate between nominal data categories, before turning to changing the line-style
, unless otherwise defined by the visualisation conditions (e.g. monochrome chart).
England | ECO purple |
#5C267B |
rgb(92,38,123) |
---|---|---|---|
Wales | ECO pink |
#E6224B |
rgb(230,34,75) |
Scotland | ECO mid-blue |
#0063AF |
rgb(0,99,175) |
Northern Ireland | ECO green |
#00A767 |
rgb(0,167,103) |
For every chart we create, we try to prametrise as much as possible, loading the color schemes and styles directly from this guideline repository folder. This allows us to maintain a consistent style for our charts and, if needed, correct appearance bugs and update all charts created in the past with new styles. Learn more about how do we accomplish this in the Code section. The inspiration comes from the Urban Institute's Dataviz Styleguide. Whenever possible, we try to automate the applying of styles to plots through themes. For Vega, themes look like this, which also translates to Altair.
The aesthetic zens we follow are those of:
- David McCandless (and the charts presented in Information is Beautiful and Knowledge is Beautiful, and more recently Beautiful News)
- Nadieh
visualcinnamon
Bremer (and the charts presented in Data Sketches, together with Shirley Wu) - Lisa Charlotte Rost
- Maarten Lambrechts
- Andy Kirk (and the charts presented in Data Visualisation)
- Nathan Yau
- The Pudding
When creating charts, usually the first step is to envisage the type of chart that can accurately represent the underlying data, with all of its internal complexity. In order to help with this process, we can use a visual vocabulary. A few good ones are:
- Financial Times Visual Vocabulary
- Tableau Visual Vocabulary
- Vega Edition of the Visual Vocabulary
- PowerBI Edition of the Visual Vocabulary
- Voyager, powered by CompassSQL
- Andy Kirks's The Chartmaker Directory
- Christophe Viau's D3.js Chart Gallery
- The D3 Graph Gallery
- The Observable Community
- The Data Visualisation Catalogue
- The Awesome-dataviz list
- The cube.js list
Line plots are excellent for showing temporal changes in data.
Here are all the line plots that we have created:
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |
||
---|---|---|
z |
When creating explorable charts, interactives or dashboards, the tools we use are:
- Panel in Anaconda's Holoviz package (also known for Bokeh) for easy interactivity and mixed chart types
- Grafana for something beautiful from streaming or lots of data
- Superset for an all-out open-source BI dashboard (albeit with a steep learning curve!)
- PowerBI if open source is not so important
The coding zens we follow are those of:
- Jeffrey Heer of idl, the cradle of modern visualisation tools, such as Vega, D3.js and Tableau.
- Datawheel, creators of D3plus
- Mike Bostock, D3.js legend and creator of Observable
- Jake VanderPlas, Vega guru and Altair lead, and the lessons presented in the Python Data Science Handbook
Make sure you check out the πData Guidelines β too!
Updated on π 2021-10-04 by DΓ©nes Csala