A31 Simple Bar Chart - cimat/data-visualization-patterns GitHub Wiki

#A 3.1: SIMPLE BAR CHART

Description

Ring charts are an extension of the conventional pie chart. They allow the display of several datasets of the same configuration, or those with data related to each other, within one chart, making the different sets and their characteristics immediately comparable (Behrens, 2008).

Required Data

Use ring charts to display datasets where the magnitudes of single data items within a set sum up to the set’s total amount. Usually, the datasets have identical configurations, i.e. they share the same number and type of member elements in this case ring charts are normally used to display data of the same set at different times. Alternatively, the rings can contain sets of different configuration but relate to each other (Behrens, 2008).

Usage

Draw a set of concentric rings, one ring per dataset. Separate each ring into segments (similar to the pie chart), with each segment representing one proportional value of the respective dataset. For the sake of clarity, give each segment of one ring a distinct color or texture. If several rings display the same dataset configuration, stay consistent with the fill coding scheme for all rings: Use the same color or texture for the same variables throughout the rings (Behrens, 2008).

Rationale

Ring charts relate to pie charts just like stacked area charts to line diagrams: By incorporating several datasets of identical type and scale into the same representation, it is much easier for the user to make comparisons between these sets than having several pie charts standing next to each other. Another, more pragmatic advantage of this chart method is the space saving aspect: The more sets you incorporate into one ring chart, the more area you save compared to a set of pie charts(Behrens, 2008).

Related Patterns

  • A 3.3 Dot Matrix
  • A 3.4 Stacked Bar Chart
  • A 3.5 Isometric Bar Chart
  • A 4.1 Simple Pie Chart

PYTHON IMPLEMENTATION

Data Set

Dependences

  • Matplotlib
  • Seaborn
  • Vispy
  • Pyqtgraph

Code Example

Matplotlib

import matplotlib.pyplot as plt
from datos import data
import pandas

d=data('mtcars')
ps = pandas.Series([i for i in d.gear])
counts = ps.value_counts()

plt.bar(counts.index,counts,0.35, color="blue")
plt.title('Simple Bar Chart: Car Distribution ', family='serif',
size=16)
plt.xlabel('Number of Gears', family= 'serif')
plt.ylabel('Frequency', family='serif')
plt.show()

{width=12 cm}

Seaborn

import seaborn as sns
import matplotlib.pyplot as plt
from datos import data
import pandas

d=data('mtcars')
ps = pandas.Series([i for i in d.gear])
counts = ps.value_counts()

sns.set(style="white", context="talk")

f, (ax1) = plt.subplots()
sns.barplot(counts.index, counts, palette="BuGn_d")
ax1.set_title("Simple Bar Chart: Car Distribution")
ax1.set_ylabel("Frequency")
ax1.set_xlabel("Number of Gears")
plt.show()

{width=12 cm}

Pyqtgraph

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
from datos import data
import pandas

d=data('mtcars')
ps = pandas.Series([i for i in d.gear])
counts = ps.value_counts()

win = pg.plot(title='Simple Bar Chart')
bg1 = pg.BarGraphItem(x=counts.index, height=counts, width=0.6,
brush='b')
win.addItem(bg1)
win.setTitle('Simple Bar Chart: Car Distribution')
win.setLabel('left', "Frequency", )
win.setLabel('bottom', "Number of Gears")

if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore,
'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

{width=12 cm}

References

R IMPLEMENTATION

Data Set

table(mtcars$gear)

## 
##  3  4  5 
## 15 12  5

Dependences

  • lattice
  • ggplot2

Code Example

Graphics

counts <- table(mtcars$gear)
barplot(counts, main="Car Distribution", xlab="Number of Gears", ylab="Frequency", col="grey")

Lattice

library("lattice")
counts <- table(mtcars$gear)
barchart(counts, main="Car Distribution", xlab="Number of Gears",ylab="Frequency", horizontal="false", col="grey")

ggplot2

library("ggplot2")
g <- ggplot(mtcars, aes(gear)) + geom_bar(fill = "gray", colour = "green", , binwidth = 0.5)
g + labs(list(title = "Car Distribution", x="Number of Gears", y="Frequency"))

References

⚠️ **GitHub.com Fallback** ⚠️