# Best way to represent x attributes in y categories in same chart over time series

Is it possible to represent x attributes in y categories over a time series in same chart without losing ability to cross verify between attributes within same category and same attribute between different categories?

A more concrete example would be, I have download, upload (2 attributes) for a device reported by different data sources (say 3 data sources, so 3 categories). I would like to represent download, upload for all data sources in same chart without losing the ability to check upload, download per data source and also be able to check upload attribute alone across different data sources. Also I would like to represent this data over time series. Say for example, per hour in a day.

I feel like this would be a common data visualization problem, could someone point me in right direction please?

• In principle, this example is just 6 time series, so 6 lines on one or more graphs. Whether they should be superimposed or juxtaposed is going to depend on what looks clearest. It may be helpful also to plot (upload $-$ download) etc. Depends on what you're looking for. – Nick Cox Oct 9 '14 at 15:25
• Thanks - the main thing I'm looking for is being able to compare up/down volume within one data source and up or down across multiple data sources. I'll go with time series, but I was wondering if there's a better way to visualize that kind of data. – opensourcegeek Oct 9 '14 at 15:39
• Erm, well, they are time series. Nothing stops you looking also at scatter plots and distribution plots. Usually no one graph captures it all. – Nick Cox Oct 9 '14 at 15:41
• Yes I would use a continuous scatter plot, with y-axis as data volume and x-axis as hour of day. There will be 6 line plots with different colour for each source and a slightly different shade of colour for rx and tx. – opensourcegeek Oct 9 '14 at 15:50

The values of x and y will drive some of the choices. Just to make things real, here are some examples with your example values of 2 and 3 along the lines of Nick's comments. That is, you're comparing several time series and common ways to do that are with overlays or small multiples. The graphic element itself may be lines, points, bars, smoothers, ..., each having its own connotations.

Interactivity is another dimension to use if available (either replacing time-as-X entirely with animation or by adding linked interactive labels).

Lines and small multiples:

Overlaid lines in small multiples:

Overlaid lines (using two kinds of graphic attributes (color and line style)):

Overlaid smoothers (using two kinds of graphic attributes (color and line style)):

• That's it in a nutshell: Side by side or superimposed? Good graphs. – Nick Cox Oct 9 '14 at 17:27
• Thanks - I was wondering if there is something along the lines of novel plot in this link bokeh.pydata.org/docs/user_guide/examples.html is possible. Having hour of day as cones per day and making each data source's rx and tx being just bars. I don't think for many datasources this approach would work. Also I know these are novel plots not generalized but I was wondering if this sort of plot already existed for this kind of problem. Anyway thanks again, I will stick with scatter plot for now. – opensourcegeek Oct 9 '14 at 17:27
• It's only a question of terminology, but I think you'd be misunderstood if you referred to graphs like those of @xan as scatter plots. Line plots (graphs) is I think much more common a term. Scatter plots typically have scatters of point symbols, although often other stuff too. – Nick Cox Oct 9 '14 at 17:30