Data science tools

Data visualization with Python

python matplotlib seaborn

By Afshine Amidi and Shervine Amidi

General structure

Overview The general structure of the code that is used to plot figures is as follows:

# Plot
f, ax = plt.subplots(...)
ax = sns...

# Legend

We note that the plt.subplots() command enables to specify the figure size.

Basic plots The main basic plots are summarized in the table below:

Type Command and parameters Illustration
Scatter plot sns.scatterplot(
  x, y, hue, size
Line plot sns.lineplot(
  x, y, hue, size
Bar chart

  x, y, hue
Box plot sns.boxplot(
  x, y, hue
Heatmap sns.heatmap(
  data, cmap, linecolor,
  linewidth, cbar

where the meaning of parameters are summarized in the table below:

Command Description Use case
hue Color of a line / point / border 'red'
fill Color of an area 'red'
size Size of a line / point 4
linetype Shape of a line 'dashed'
alpha Transparency, between 0 and 1 0.3

Advanced features

Text annotation Plots can have text annotations with the following commands:

Command Illustration
  x, y, s, color

Additional elements We can add objects on the plot with the following commands:

Type Command Illustration
Line ax.axvline(
  x, ymin, ymax, color,
  linewidth, linestyle
  y, xmin, xmax, color,
  linewidth, linestyle
Rectangle ax.axvspan(
  xmin, xmax, ymin, ymax,
  color, fill, alpha

Last touch

Legend The title of legends can be customized to the plot with the commands summarized below:

Element Command
Title / subtitle of the plot ax.set_title('text', loc, pad)
plt.suptitle('text', x, y, size, ha)
Title of the $x$ / $y$ axis ax.set_xlabel('text') / ax.set_ylabel('text')
Title of the size / color via ax.get_legend_handles_labels()
Caption of the plot ax.text('text', x, y, fontsize)

This results in the following plot:

Double axes A plot can have more than one axis with the plt.twinx() command. It is done as follows:

ax2 = plt.twinx()

Figure saving There are two main steps to save a plot: