Plotting graphs with Python
Mathematical library to work with graphs and data.
Python is an excellent programming language. It's a multi-purpose language and, its uses cases are unlimited.
For instance, it's widely used in statistics and math in general.
Let's see how to plot graphs using a Python library called matplotlib.
Main concepts
Matplotlib graphs data into:
- Figures: the rendered windows
- Axes: where data renders into coordinates (cartesian, polar, etc.)
Plotting points
The simplest way to plot data on a graph is by points.
To do so, we can use the Axis.subplots()
method. After that, we can use Axis.plot()
to plot the actual points.
import matplotlib.pyplot as plt
# Coordinates
x = [0, 2, 5, 6]
y = [0, 2, 2, 6]
# Creating a Figure with an Axis
fig, ax = plt.subplots()
ax.plot(x, y)
# Displaying the graph
plt.show()
Plotting functions
Another simple way to plot data is from a mathematical function.
In this case, we need to import numpy
as well. This module lets us generate an array of points.
import numpy as np
We can then generate these points using the arange()
function. The first two parameters represent the starting and ending points, while the third is the step.
# Generating an array of point from 0 to 2PI
x = np.arange(0, math.pi*2, 0.05)
You can also plot multiple functions, or points, on the graph by calling the plot
method multiple times.
If we use a math function to calculate y points, we can graph whatever we like.
For example, let's plot the graph for the function f(x) = sin(x) + cos(2x)
from matplotlib import pyplot as plt
import numpy as np
# PI
from math import pi as PI
# Creating two arrays for x and y
x = np.arange(0, PI * 4, 0.05)
y = np.sin(x) + np.cos(2 * x)
# Plotting the points
plt.plot(x, y)
# Displaying the graph
plt.show()
Formatting the Graph
It is possible to change how the graphs look. We can add captions, change colors, changing line style, etc.
Adding labels
As we may want to generate an image from a graph, adding some labels can make it immediately clear to the user what they're watching.
We can write a title and naming axis, for example.
plt.xlabel("angle")
plt.ylabel("f(x)")
plt.title("My cool Graph")
If we apply this to the previous graph, we'll get this:
Editing colors, Line-styling and adding a grid
Moreover, it's possible to edit colors. We can use some special characters and passing them as the third element of the plot.
Here you can see the color codes:
- b - Blue
- g - Green
- r - Red
- c - Cyan
- m - Magenta
- y - Yellow
- k - Black
- w - White
You can also use CSS color codes.
If you combine these codes with these symbols "- , –, -., , . , , , o , ^ , v , < , > , s , + , x , D , d , 1 , 2 , 3 , 4 , h , H , p , | , _", you can change the line pattern.
Furthermore, you can add a grid behind the graph.
Let's apply this:
plt.grid(True)
plt.plot(x, y, "r--")
Conclusion
This library does way more than this, for now, let's stick with some simple stuff.