Matplotlib (5 Part Series)
1 How Data Visualization Enhances Understanding: A Matplotlib Primer
2 Creating Line Plots with Object-Oriented API and Subplot Function in Python
3 Creating Eye-Catching Plots with Matplotlib: A Guide to Custom Titles
4 Mastering Matplotlib: A Guide to Bar Charts, Histograms, Scatter Plots, and Pie Charts
5 How to Export Matplotlib Plots to JPEG or PDF
Simple Line Plot using Matplotlib
A simple line plot in Matplotlib is a basic visualization that represents the relationship between two variables (usually denoted as X and Y) using a continuous line. It’s commonly used to display trends, patterns, or changes over time.
Here’s how you can create a simple line plot using Matplotlib in Python:
<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span><span>import</span> <span>numpy</span> <span>as</span> <span>np</span><span># Define data values </span><span>x_values</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>,</span> <span>4</span><span>])</span> <span># X-axis points </span><span>y_values</span> <span>=</span> <span>x_values</span> <span>*</span> <span>2</span> <span># Y-axis points (twice the corresponding x-values) </span><span># Create the line plot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x_values</span><span>,</span> <span>y_values</span><span>)</span><span># Add labels and title </span><span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Simple Line Plot</span><span>"</span><span>)</span><span># Display the plot </span><span>plt</span><span>.</span><span>show</span><span>()</span><span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span> <span>import</span> <span>numpy</span> <span>as</span> <span>np</span> <span># Define data values </span><span>x_values</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>,</span> <span>4</span><span>])</span> <span># X-axis points </span><span>y_values</span> <span>=</span> <span>x_values</span> <span>*</span> <span>2</span> <span># Y-axis points (twice the corresponding x-values) </span> <span># Create the line plot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x_values</span><span>,</span> <span>y_values</span><span>)</span> <span># Add labels and title </span><span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Simple Line Plot</span><span>"</span><span>)</span> <span># Display the plot </span><span>plt</span><span>.</span><span>show</span><span>()</span>import matplotlib.pyplot as plt import numpy as np # Define data values x_values = np.array([1, 2, 3, 4]) # X-axis points y_values = x_values * 2 # Y-axis points (twice the corresponding x-values) # Create the line plot plt.plot(x_values, y_values) # Add labels and title plt.xlabel("X-axis") plt.ylabel("Y-axis") plt.title("Simple Line Plot") # Display the plot plt.show()
Enter fullscreen mode Exit fullscreen mode
In this example:
- We use NumPy to define the x-values (evenly spaced points from 1 to 4).
- The y-values are calculated as twice the corresponding x-values.
- The
plt.plot()
function creates the line plot. - We set labels for the axes and a title for the plot.
If you’d like to see more examples or explore different line plot styles, let me know!
Object-Oriented API
Let’s delve into the object-oriented API in Matplotlib.
Object-Oriented Interface (OO):
- The object-oriented API gives you more control and customization over your plots.
- It involves working directly with Matplotlib objects, such as
Figure
andAxes
. - You create a
Figure
and one or moreAxes
explicitly, then use methods on these objects to add data, configure limits, set labels, etc. - This approach is more flexible and powerful, especially for complex visualizations.
Now, let’s create a simple example using the object-oriented interface. We’ll plot the distance traveled by an object under free-fall with respect to time.
<span>import</span> <span>numpy</span> <span>as</span> <span>np</span><span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span><span># Generate data points </span><span>time</span> <span>=</span> <span>np</span><span>.</span><span>arange</span><span>(</span><span>0.</span><span>,</span> <span>10.</span><span>,</span> <span>0.2</span><span>)</span><span>g</span> <span>=</span> <span>9.8</span> <span># Acceleration due to gravity (m/s^2) </span><span>velocity</span> <span>=</span> <span>g</span> <span>*</span> <span>time</span><span>distance</span> <span>=</span> <span>0.5</span> <span>*</span> <span>g</span> <span>*</span> <span>np</span><span>.</span><span>power</span><span>(</span><span>time</span><span>,</span> <span>2</span><span>)</span><span># Create a Figure and Axes </span><span>fig</span><span>,</span> <span>ax</span> <span>=</span> <span>plt</span><span>.</span><span>subplots</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>9</span><span>,</span> <span>7</span><span>),</span> <span>dpi</span><span>=</span><span>100</span><span>)</span><span># Plot distance vs. time </span><span>ax</span><span>.</span><span>plot</span><span>(</span><span>time</span><span>,</span> <span>distance</span><span>,</span> <span>'</span><span>bo-</span><span>'</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Distance</span><span>"</span><span>)</span><span>ax</span><span>.</span><span>set_xlabel</span><span>(</span><span>"</span><span>Time</span><span>"</span><span>)</span><span>ax</span><span>.</span><span>set_ylabel</span><span>(</span><span>"</span><span>Distance</span><span>"</span><span>)</span><span>ax</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span><span>ax</span><span>.</span><span>legend</span><span>()</span><span># Show the plot </span><span>plt</span><span>.</span><span>show</span><span>()</span><span>import</span> <span>numpy</span> <span>as</span> <span>np</span> <span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span> <span># Generate data points </span><span>time</span> <span>=</span> <span>np</span><span>.</span><span>arange</span><span>(</span><span>0.</span><span>,</span> <span>10.</span><span>,</span> <span>0.2</span><span>)</span> <span>g</span> <span>=</span> <span>9.8</span> <span># Acceleration due to gravity (m/s^2) </span><span>velocity</span> <span>=</span> <span>g</span> <span>*</span> <span>time</span> <span>distance</span> <span>=</span> <span>0.5</span> <span>*</span> <span>g</span> <span>*</span> <span>np</span><span>.</span><span>power</span><span>(</span><span>time</span><span>,</span> <span>2</span><span>)</span> <span># Create a Figure and Axes </span><span>fig</span><span>,</span> <span>ax</span> <span>=</span> <span>plt</span><span>.</span><span>subplots</span><span>(</span><span>figsize</span><span>=</span><span>(</span><span>9</span><span>,</span> <span>7</span><span>),</span> <span>dpi</span><span>=</span><span>100</span><span>)</span> <span># Plot distance vs. time </span><span>ax</span><span>.</span><span>plot</span><span>(</span><span>time</span><span>,</span> <span>distance</span><span>,</span> <span>'</span><span>bo-</span><span>'</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Distance</span><span>"</span><span>)</span> <span>ax</span><span>.</span><span>set_xlabel</span><span>(</span><span>"</span><span>Time</span><span>"</span><span>)</span> <span>ax</span><span>.</span><span>set_ylabel</span><span>(</span><span>"</span><span>Distance</span><span>"</span><span>)</span> <span>ax</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span> <span>ax</span><span>.</span><span>legend</span><span>()</span> <span># Show the plot </span><span>plt</span><span>.</span><span>show</span><span>()</span>import numpy as np import matplotlib.pyplot as plt # Generate data points time = np.arange(0., 10., 0.2) g = 9.8 # Acceleration due to gravity (m/s^2) velocity = g * time distance = 0.5 * g * np.power(time, 2) # Create a Figure and Axes fig, ax = plt.subplots(figsize=(9, 7), dpi=100) # Plot distance vs. time ax.plot(time, distance, 'bo-', label="Distance") ax.set_xlabel("Time") ax.set_ylabel("Distance") ax.grid(True) ax.legend() # Show the plot plt.show()
Enter fullscreen mode Exit fullscreen mode
In this example:
- We create a
Figure
usingplt.subplots()
and obtain anAxes
object (ax
). - The
ax.plot()
method is used to plot the distance data. - We customize the plot by setting labels, grid, and adding a legend.
Feel free to explore more features of the object-oriented API for richer and more complex visualizations! \
The Subplot() function
The plt.subplot()
function in Matplotlib allows you to create multiple subplots within a single figure. You can arrange these subplots in a grid, specifying the number of rows and columns. Here’s how it works:
-
Creating Subplots:
- The
plt.subplot()
function takes three integer arguments:nrows
,ncols
, andindex
. -
nrows
represents the number of rows in the grid. -
ncols
represents the number of columns in the grid. -
index
specifies the position of the subplot within the grid (starting from 1). - The function returns an
Axes
object representing the subplot.
- The
-
Example:
Let’s create a simple figure with two subplots side by side:
<span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span><span>import</span> <span>numpy</span> <span>as</span> <span>np</span><span># Create some sample data </span><span>x</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>0</span><span>,</span> <span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>])</span><span>y1</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>3</span><span>,</span> <span>8</span><span>,</span> <span>1</span><span>,</span> <span>10</span><span>])</span><span>y2</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>10</span><span>,</span> <span>20</span><span>,</span> <span>30</span><span>,</span> <span>40</span><span>])</span><span># Create a 1x2 grid of subplots </span><span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>1</span><span>)</span> <span># First subplot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x</span><span>,</span> <span>y1</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Plot 1</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Subplot 1</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span><span>plt</span><span>.</span><span>legend</span><span>()</span><span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>2</span><span>)</span> <span># Second subplot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x</span><span>,</span> <span>y2</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Plot 2</span><span>"</span><span>,</span> <span>color</span><span>=</span><span>"</span><span>orange</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Subplot 2</span><span>"</span><span>)</span><span>plt</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span><span>plt</span><span>.</span><span>legend</span><span>()</span><span>plt</span><span>.</span><span>tight_layout</span><span>()</span> <span># Adjust spacing between subplots </span><span>plt</span><span>.</span><span>show</span><span>()</span><span>import</span> <span>matplotlib.pyplot</span> <span>as</span> <span>plt</span> <span>import</span> <span>numpy</span> <span>as</span> <span>np</span> <span># Create some sample data </span><span>x</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>0</span><span>,</span> <span>1</span><span>,</span> <span>2</span><span>,</span> <span>3</span><span>])</span> <span>y1</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>3</span><span>,</span> <span>8</span><span>,</span> <span>1</span><span>,</span> <span>10</span><span>])</span> <span>y2</span> <span>=</span> <span>np</span><span>.</span><span>array</span><span>([</span><span>10</span><span>,</span> <span>20</span><span>,</span> <span>30</span><span>,</span> <span>40</span><span>])</span> <span># Create a 1x2 grid of subplots </span><span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>1</span><span>)</span> <span># First subplot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x</span><span>,</span> <span>y1</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Plot 1</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Subplot 1</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span> <span>plt</span><span>.</span><span>legend</span><span>()</span> <span>plt</span><span>.</span><span>subplot</span><span>(</span><span>1</span><span>,</span> <span>2</span><span>,</span> <span>2</span><span>)</span> <span># Second subplot </span><span>plt</span><span>.</span><span>plot</span><span>(</span><span>x</span><span>,</span> <span>y2</span><span>,</span> <span>label</span><span>=</span><span>"</span><span>Plot 2</span><span>"</span><span>,</span> <span>color</span><span>=</span><span>"</span><span>orange</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>xlabel</span><span>(</span><span>"</span><span>X-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>ylabel</span><span>(</span><span>"</span><span>Y-axis</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>title</span><span>(</span><span>"</span><span>Subplot 2</span><span>"</span><span>)</span> <span>plt</span><span>.</span><span>grid</span><span>(</span><span>True</span><span>)</span> <span>plt</span><span>.</span><span>legend</span><span>()</span> <span>plt</span><span>.</span><span>tight_layout</span><span>()</span> <span># Adjust spacing between subplots </span><span>plt</span><span>.</span><span>show</span><span>()</span>import matplotlib.pyplot as plt import numpy as np # Create some sample data x = np.array([0, 1, 2, 3]) y1 = np.array([3, 8, 1, 10]) y2 = np.array([10, 20, 30, 40]) # Create a 1x2 grid of subplots plt.subplot(1, 2, 1) # First subplot plt.plot(x, y1, label="Plot 1") plt.xlabel("X-axis") plt.ylabel("Y-axis") plt.title("Subplot 1") plt.grid(True) plt.legend() plt.subplot(1, 2, 2) # Second subplot plt.plot(x, y2, label="Plot 2", color="orange") plt.xlabel("X-axis") plt.ylabel("Y-axis") plt.title("Subplot 2") plt.grid(True) plt.legend() plt.tight_layout() # Adjust spacing between subplots plt.show()
Enter fullscreen mode Exit fullscreen mode
In this example:
- We create a 1×2 grid of subplots using
plt.subplot(1, 2, 1)
andplt.subplot(1, 2, 2)
. - Each subplot contains a simple line plot with different data (
y1
andy2
). - We customize the labels, titles, and grid for each subplot.
Feel free to explore more complex arrangements by adjusting the nrows
and ncols
parameters!
Matplotlib (5 Part Series)
1 How Data Visualization Enhances Understanding: A Matplotlib Primer
2 Creating Line Plots with Object-Oriented API and Subplot Function in Python
3 Creating Eye-Catching Plots with Matplotlib: A Guide to Custom Titles
4 Mastering Matplotlib: A Guide to Bar Charts, Histograms, Scatter Plots, and Pie Charts
5 How to Export Matplotlib Plots to JPEG or PDF
原文链接:Creating Line Plots with Object-Oriented API and Subplot Function in Python
暂无评论内容