Matplotlib 教程

哎哎哎:# t0]https://www . geeksforgeeks . org/matplot lib-tutorial/

Matplotlib 简单易用,是 Python 中一个令人惊叹的可视化库。它建立在 NumPy 阵列上,旨在与更广泛的 SciPy 堆栈一起工作,由线条、条形图、散点图、直方图等几个图组成。

在本文中,我们将借助包含不同类型地块及其自定义信息的庞大数据集,从基础到高级了解使用 Matplotlib 进行 Python 绘图。

目录

Matplotlib 近期文章!!!T3】

入门指南

在开始学习 Matplotlib 之前,我们首先要设置环境,并了解如何在 Jupyter Notebook 上使用 Matplotlib:

在了解了环境设置以及如何使用 Matplotlib 和 Jupyter 之后,让我们创建一个简单的图。我们将绘制两个包含绘图的 X,Y 坐标的列表。

示例:

Python 3

import matplotlib.pyplot as plt
   # initializing the data
   x = [10, 20, 30, 40]
   y = [20, 30, 40, 50]
   # plotting the data
   plt.plot(x, y)
   # Adding the title
   plt.title("Simple Plot")
   # Adding the labels
   plt.ylabel("y-axis")
   plt.xlabel("x-axis")
   plt.show()

输出:

在上例中, XY 的元素提供了 x 轴和 Y 轴的坐标,并针对这些坐标绘制了一条直线。有关 Matplotlib 的详细介绍以及如何绘制基本图表,请参考下面的文章。

在上面的文章中,你可能已经看到了 Pyplot 是在代码中导入的,你一定很想知道什么是 Pyplot。别担心,我们将在下一节讨论 Pyplot。

Pyplot

Pyplot 是一个提供类似 MATLAB 界面的 Matplotlib 模块。Pyplot 提供与图形交互的功能,即创建图形,用标签装饰图形,在图形中创建绘图区域。

语法:

matplotlib.pyplot.plot(args,scalex=True,scaley=True,data=None,*kwargs)

示例:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) 
   plt.axis([0, 6, 0, 20]) 
   plt.show()

输出:

请参考下面的文章来获得关于 Pyplot 和与这个类相关的函数的详细信息。

> > >更多 Pyplot 类功能

Matplotlib 负责创建内置默认值,如图形和轴。不要担心这些术语,我们将在下一节详细研究它们,但让我们简单介绍一下这些术语。

  • 图:这个类是所有图的顶层容器,意味着它是绘制所有内容的整体窗口或页面。图形对象可以被认为是一个可以容纳一个或多个轴的盒状容器。
  • 轴:这个类是创建子地块最基本、最灵活的组件。你可能会混淆轴作为轴的复数,但它是一个单独的图表。给定的图形可能包含许多轴,但给定的轴只能在一个图形中。

图形类

图形类是包含一个或多个轴的顶级容器。它是绘制所有内容的整个窗口或页面。

语法:

class matplotlib . fig . fig(fig size =无,dpi =无,facecolor =无,edgecolor =无,线宽=0.0,frameon =无,subplotpars =无,紧密 _ 布局=无,约束 _ 布局=无)

例 1:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   # Creating a new figure with width = 5 inches
   # and height = 4 inches
   fig = plt.figure(figsize =(5, 4)) 
   # Creating a new axes for the figure
   ax = fig.add_axes([1, 1, 1, 1]) 
   # Adding the data to be plotted
   ax.plot([2, 3, 4, 5, 5, 6, 6], [5, 7, 1, 3, 4, 6 ,8])
   plt.show()

输出:

Python matplotlib tutorial figure class

示例 2: 创建多个地块

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   # Creating a new figure with width = 5 inches
   # and height = 4 inches
   fig = plt.figure(figsize =(5, 4)) 
   # Creating first axes for the figure
   ax1 = fig.add_axes([1, 1, 1, 1]) 
   # Creating second axes for the figure
   ax2 = fig.add_axes([1, 0.5, 0.5, 0.5])
   # Adding the data to be plotted
   ax1.plot([2, 3, 4, 5, 5, 6, 6], [5, 7, 1, 3, 4, 6 ,8])
   ax2.plot([1, 2, 3, 4, 5], [2, 3, 4, 5, 6])
   plt.show()

输出:

python matplotlib tutorial figure class 2

请参考下面的文章来获得关于 fig 类及其相关函数的详细信息。

> > >更多图类功能

轴类

斧类 是创建子地块最基本、最灵活的单元。一个给定的图形可能包含许多轴,但是一个给定的轴只能出现在一个图形中。axes()函数创建 axes 对象。让我们看看下面的例子。

语法:

matplotlib.pyplot.axis(args,emit=true,*kwargs)

例 1:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   # Creating the axes object with argument as 
   # [left, bottom, width, height]
   ax = plt.axes([1, 1, 1, 1])

输出:

python-matplotlib-tutorial-axes-class

例 2:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   fig = plt.figure(figsize = (5, 4))
   # Adding the axes to the figure
   ax = fig.add_axes([1, 1, 1, 1])
   # plotting 1st dataset to the figure
   ax1 = ax.plot([1, 2, 3, 4], [1, 2, 3, 4])
   # plotting 2nd dataset to the figure
   ax2 = ax.plot([1, 2, 3, 4], [2, 3, 4, 5])
   plt.show()

输出:

python axes class matplotlib tutorial.png

请参考下面的文章来获得 axes 类及其相关函数的详细信息。

> > >更多斧类功能

设置限制和刻度标签

您可能已经看到 Matplotlib 自动设置 x 轴和 y 轴的值和标记(点),但是,也可以手动设置限制和标记。 set_xlim()set_ylim() 功能分别用于设置 x 轴和 y 轴的极限。同样的,set _ xticklabels()set _ yticklabels()功能用于设置刻度标签。

示例:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   x = [3, 1, 3] 
   y = [3, 2, 1] 
   # Creating a new figure with width = 5 inches
   # and height = 4 inches
   fig = plt.figure(figsize =(5, 4)) 
   # Creating first axes for the figure
   ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 
   # Adding the data to be plotted
   ax.plot(x, y)
   ax.set_xlim(1, 2)
   ax.set_xticklabels((
   "one", "two", "three", "four", "five", "six")) 
   plt.show()

输出:

matplotlob tutorial set imit and tick label

多个地块

到现在为止,你一定对 Matplotlib 和绘制一些简单的图有了基本的了解,现在如果你想在同一个图中绘制多个图呢?这可以通过多种方式实现。上面讨论的一种方法是使用图形类的 add_axes() 方法。让我们借助示例来看看添加多个图的各种方法。

方法 1: 使用 add_axes() 方法

matplotlib 库的 add_axes()方法图形模块用于给图形添加一个轴。

语法:

add_axes(self,args,*kwargs)

示例:

Python 3

# Python program to show pyplot module
   import matplotlib.pyplot as plt 
   from matplotlib.figure import Figure 
   # Creating a new figure with width = 5 inches
   # and height = 4 inches
   fig = plt.figure(figsize =(5, 4)) 
   # Creating first axes for the figure
   ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) 
   # Creating second axes for the figure
   ax2 = fig.add_axes([0.5, 0.5, 0.3, 0.3])
   # Adding the data to be plotted
   ax1.plot([5, 4, 3, 2, 1], [2, 3, 4, 5, 6])
   ax2.plot([1, 2, 3, 4, 5], [2, 3, 4, 5, 6])
   plt.show()

输出:

matplotlib tutorial multiple plots

add_axes()方法通过创建另一个 axes 对象在同一图形中添加绘图。

方法二:使用支线剧情()方法。

此方法将另一个图添加到当前图形的指定网格位置。

语法:

子图(nrows、ncols、index、**kwargs)

子打印(pos、* . quartz)

支线剧情(ax)

示例:

Python 3

import matplotlib.pyplot as plt 
   # data to display on plots 
   x = [3, 1, 3] 
   y = [3, 2, 1] 
   z = [1, 3, 1] 
   # Creating figure object 
   plt.figure() 
   # addind first subplot 
   plt.subplot(121) 
   plt.plot(x, y) 
   # addding second subplot 
   plt.subplot(122) 
   plt.plot(z, y)

输出:

matplotlib tutorial subplot

注意:子图()函数有以下缺点–

  • 不允许同时添加多个支线剧情。
  • 它删除了先前存在的图形。

方法三:使用支线剧情()方法

该功能用于同时创建人物和多个支线剧情。

语法:

matplotlib . pyplot . subplot(nrows = 1,ncols=1,sharex=False,sharey=False,挤压=True,subplot _ kw =无,gridspec _ kw =无,**fig_kw)

示例:

Python 3

import matplotlib.pyplot as plt 
   # Creating the figure and subplots
   # according the argument passed
   fig, axes = plt.subplots(1, 2)
   # plotting the data in the 1st subplot
   axes[0].plot([1, 2, 3, 4], [1, 2, 3, 4])
   # plotting the data in the 1st subplot only
   axes[0].plot([1, 2, 3, 4], [4, 3, 2, 1])
   # plotting the data in the 2nd subplot only
   axes[1].plot([1, 2, 3, 4], [1, 1, 1, 1])

输出:

matplotlib tutorial subplots

方法 4: 使用亚批次 2grid() 方法

这个函数为在网格内指定位置创建轴对象提供了额外的灵活性。它还有助于将 axes 对象跨多个行或列。更简单地说,这个函数用于在同一个图中创建多个图表。

语法:

PLT . sub lot 2 grid(形状、位置、行跨度、列跨度)

示例:

Python 3

import matplotlib.pyplot as plt 
   # data to display on plots 
   x = [3, 1, 3] 
   y = [3, 2, 1] 
   z = [1, 3, 1] 
   # adding the subplots
   axes1 = plt.subplot2grid (
   (7, 1), (0, 0), rowspan = 2,  colspan = 1) 
   axes2 = plt.subplot2grid (
   (7, 1), (2, 0), rowspan = 2, colspan = 1) 
   axes3 = plt.subplot2grid (
   (7, 1), (4, 0), rowspan = 2, colspan = 1) 
   # plotting the data
   axes1.plot(x, y)
   axes2.plot(x, z)
   axes3.plot(z, y)

输出:

matplotlib tutorial subplot2grid

参考下面的文章来获得关于支线剧情的详细信息

什么是传奇?

图例是描述图形元素的区域。简单来说,它反映了图表 Y 轴上显示的数据。它通常显示为包含图表上每种颜色的小样本和该数据含义的小描述的方框。

创造传奇

可以使用 图例() 方法创建图例。图例()中的属性 Loc 用于指定图例的位置。loc 的默认值是 loc=“最佳”(左上角)。字符串“左上角”、“右上角”、“左下角”、“右下角”将图例放置在轴/图形的相应角落。

legend()函数的属性 bbox_to_anchor=(x,y) 用于指定图例的坐标,属性 ncol 表示图例的列数。它的默认值是 1。

语法:

matplotlib.pyplot.legend([蓝色、绿色]、bbox_to_anchor=(0.75、1.15)、ncl = 2)

示例:

Python 3

import matplotlib.pyplot as plt 
   # data to display on plots 
   x = [3, 1, 3] 
   y = [3, 2, 1] 
   plt.plot(x, y)
   plt.plot(y, x)
   # Adding the legends
   plt.legend(["blue", "orange"])
   plt.show()

输出:

matplotlib tutorial legend

请参考以下文章,获取有关图例的详细信息–

创建不同类型的地块

线图

到目前为止,你们一定都已经看到我们只使用折线图,因为它们很容易绘制和理解。折线图用于表示不同轴上两个数据 X 和 Y 之间的关系。它是使用 pot()函数绘制的。让我们看看下面的例子

示例:

Python 3

import matplotlib.pyplot as plt 
   # data to display on plots 
   x = [3, 1, 3] 
   y = [3, 2, 1] 
   # This will plot a simple line chart
   # with elements of x as x axis and y
   # as y axis
   plt.plot(x, y)
   plt.title("Line Chart")
   # Adding the legends
   plt.legend(["Line"])
   plt.show()

输出:

matplotlib tutorial line chart

参考下面的文章来获得关于折线图的详细信息。

条形图

条形图或条形图是一种用矩形条表示数据类别的图形,矩形条的长度和高度与它们所代表的值成比例。条形图可以水平或垂直绘制。条形图描述了离散类别之间的比较。可以使用栏()方法创建。

语法:

plt.bar(x,高度,宽度,底部,对齐)

示例:

Python 3

import matplotlib.pyplot as plt 
   # data to display on plots 
   x = [3, 1, 3, 12, 2, 4, 4] 
   y = [3, 2, 1, 4, 5, 6, 7] 
   # This will plot a simple bar chart
   plt.bar(x, y)
   # Title to the plot
   plt.title("Bar Chart")
   # Adding the legends
   plt.legend(["bar"])
   plt.show()