You can use Matplotlib to create a line chart with Python. Matplotlib is a plotting library for the Python programming language and its numerical mathematics extension numpy.

A line chart is the right chart when one value changes over another, over time or in order. Matplotlib calls it a plot, you give it x values and y values and it draws the points and the line between them.

Line chart

The code creates a line plot in a graphical desktop window. This takes only a few lines. The dataset can be any set of numbers, in the example below we simply picked some random numbers for x.

import numpy as np
import matplotlib.pyplot as plt

x = [2,3,4,5,7,9,13,15,17]
plt.plot(x)
plt.ylabel('Sunlight')
plt.xlabel('Time')
plt.show()

In the first two lines we include the numpy and matplotlib library. This contains logical functions to create line charts amongst others.

We define a list named x with a few random numbers and we set the x and y label. Finally we call the function show() which will display the line chart. If you do not call the show() function, nothing will be shown on the screen.

matplotlib-plot

Line plot colors

Plots support theming. It’s very easy to change the color of the line or the shape of it. By changing the plot function call to:

plt.plot(x, 'ro-')
we create a red graph with dots, where the r in ‘ro-‘ indicates red. Changing this to ‘bo-‘ would create a blue dotted line. If you only want to display the dots, use ‘ro’ or ‘bo’ instead.

The steps

  • import matplotlib.pyplot as plt. The name plt is the usual short one.
  • Create a figure with plt.figure(). You can pass a size in inches.
  • plt.plot(x, y) draws the line. Add a second call with different values and Matplotlib picks a second colour.
  • plt.title('...'), plt.xlabel('...') and plt.ylabel('...') name it.
  • plt.grid(True) adds a grid, which makes values readable.
  • plt.legend() adds a legend when you plotted more than one line.
  • plt.show() opens the window. plt.savefig('chart.png') writes a file instead.

Useful extras: plt.xlim(0, 10) sets the range on an axis, plt.plot(x, y, 'o') draws dots instead of a line and plt.scatter(x, y) is meant for points with no order.

The fastest way to learn this is to write it yourself. The PyChallenge exercises run in your browser, no install needed.