Matplotlib Plot: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 9: Line 9:
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
plt.style.use('seaborn-v0_8-whitegrid')
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots() # this returns a Figure instance and one or an array of matplotlib.axes.Axes instances
fig.suptitle('Something')
ax.set_xlabel('length')
ax.set_ylabel('height')
x = [1, 2, 3]
x = [1, 2, 3]
y = [10, 23, 4]
y = [10, 23, 4]
x2 = [1, 2, 3]
x2 = [1, 2, 3]
y2 = [11, 25, 6]
y2 = [11, 25, 6]
fig, ax = plt.subplots() # this returns a Figure instance and one or an array of matplotlib.axes.Axes instances
 
fig.suptitle('Something')
ax.set_xlabel('length')
ax.set_ylabel('height')
ax.plot(x, y, 'g', x2, y2, 'b', lw=0.5)
ax.plot(x, y, 'g', x2, y2, 'b', lw=0.5)
plt.show() # not needed in Jupyter
plt.show() # not needed in Jupyter

Revision as of 22:17, 20 October 2023

External

Internal

Overview

import matplotlib.pyplot as plt
plt.style.use('seaborn-v0_8-whitegrid')
fig, ax = plt.subplots() # this returns a Figure instance and one or an array of matplotlib.axes.Axes instances
fig.suptitle('Something')
ax.set_xlabel('length')
ax.set_ylabel('height')

x = [1, 2, 3]
y = [10, 23, 4]
x2 = [1, 2, 3]
y2 = [11, 25, 6]

ax.plot(x, y, 'g', x2, y2, 'b', lw=0.5)
plt.show() # not needed in Jupyter

Difference between Plot and Scatter

Difference between Plot and Scatter

Input Data

The coordinates of the points or line nodes are given by the x and y lists, which must have the same size, otherwise a runtime error occurs.

plot([x], y, [fmt], ...)

fmt is a format string.

Multiple Series

If multiple pairs of x/y arguments are provided, multiple lines are plotted:

def plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

Style

To set globally, see:

Visualization Style

Format String

Color "r" for red.

Line Width, Color, Style, Marker

Use style properties:

ax.plot(x, y, linewidth=0.5)
ax.plot(x, y, lw=0.5)
ax.plot(x, y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=12)

The fmt argument, which is a convenient way for defining basic formatting like color, marker and lifestyle, can be mixed with style properties.

ax.plot(x, y, 'g', marker='o', linestyle='dashed', linewidth=2, markersize=12)

Multiple Series Formatting

The series are specified as array pairs:

# first line green, second blue
ax.plot(x, y, 'g', x2, y2, 'b', lw=0.5)

The series are Pandas Series:

s = ...
s2 = ...
ax.plot(s)
ax.plot(s2)

Axes

If some axis attribute needs to be set, after it was created, the x axis and the y axis of the matplotlib.axes.Axes object can be accessed with the ax.xaxis and ax.yaxis:

import matplotlib as mp
ax.xaxis.set_minor_locator(mp.ticker.AutoMinorLocator())

Labels

ax.set_xlabel('length')
ax.set_ylabel('height')

When the date labels overlap on the horizontal axis, use this:

fig.autofmt_xdate()

Grid Lines

Title

fig, ax = plt.subplots()
fig.suptitle('Something')

Using a Plot with Pandas Series

Using a Plot with Pandas Series