📅  最后修改于: 2020-10-29 00:54:09             🧑  作者: Mango
Python提供了一种最流行的绘图库,称为Matplotlib。它是开源的,跨平台的,可以根据数组中的数据制作2D图。它通常用于数据可视化并通过各种图形表示。
Matplotlib最初由John D. Hunter于2003年构思。matplotlib的最新版本是2.2.0,于2018年1月发布。
在开始使用matplotlib库之前,我们需要在Python环境中安装。
在终端中键入以下命令,然后按Enter。
pip install matplotlib
上面的命令将在Windows操作系统上安装matplotlib库及其依赖包。
图形包含以下部分。让我们了解这些部分。
图:这是一个整体图,可以容纳一个或多个轴(曲线图)。我们可以将Figure看作是一块包含绘图的画布。
轴:一个图形可以包含多个轴。它由两个或三个(在3D情况下)Axis对象组成。每个轴由标题,x标签和y标签组成。
轴:轴是线状对象的数量,负责生成图形限制。
艺术家:艺术家是我们在图形上看到的全部对象,例如文本对象,Line2D对象和集合对象。大多数艺术家都与斧头息息相关。
matplotlib提供了pyplot软件包,用于绘制给定数据的图形。 matplotlib.pyplot是使Matplotlib像MATLAB一样工作的一组命令样式函数。 pyplot软件包包含许多函数,这些函数用于创建图形,在图形中创建绘图区域,用标签装饰绘图,在绘图区域中绘制一些线等。
我们可以使用pyplot快速绘制图形。让我们看下面的例子。
这是生成简单图形的基本示例;该程序如下:
from matplotlib import pyplot as plt
#ploting our canvas
plt.plot([1,2,3],[4,5,1])
#display the graph
plt.show()
输出:
我们可以使用pyplot模块绘制各种图形。让我们了解以下示例。
折线图用于将信息显示为一系列折线。这很容易绘制。考虑以下示例。
范例-
from matplotlib import pyplot as plt
x = [1,2,3]
y = [10,11,12]
plt.plot(x,y)
plt.title("Line graph")
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
输出:
可以使用各种功能来修改生产线。它使图形更具吸引力。以下是示例。
范例-
from matplotlib import pyplot as plt
from matplotlib import style
style.use('ggplot')
x = [10, 12, 13]
y = [8, 16, 6]
x2 = [8, 15, 11]
y2 = [6, 15, 7]
plt.plot(x, y, 'b', label='line one', linewidth=5)
plt.plot(x2, y2, 'r', label='line two', linewidth=5)
plt.title('Epic Info')
fig = plt.figure()
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
条形图是最常见的图之一,用于表示与分类变量关联的数据。 bar()函数接受三个参数-分类变量,值和颜色。
范例-
from matplotlib import pyplot as plt
Names = ['Arun','James','Ricky','Patrick']
Marks = [51,87,45,67]
plt.bar(Names,Marks,color = 'blue')
plt.title('Result')
plt.xlabel('Names')
plt.ylabel('Marks')
plt.show()
图表是一个圆图,分为多个子部分或部分。它用于表示百分比或比例数据,其中每个饼图代表一个特定类别。让我们了解以下示例。
范例-
from matplotlib import pyplot as plt
# Pie chart, where the slices will be ordered and plotted counter-clockwise:
Aus_Players = 'Smith', 'Finch', 'Warner', 'Lumberchane'
Runs = [42, 32, 18, 24]
explode = (0.1, 0, 0, 0) # it "explode" the 1st slice
fig1, ax1 = plt.subplots()
ax1.pie(Runs, explode=explode, labels=Aus_Players, autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()
输出:
直方图和条形图非常相似,但是它们之间的差别很小。直方图用于表示分布,条形图用于比较不同的实体。直方图通常用于绘制与一组值范围相比的多个值的频率。
在以下示例中,我们获取了学生不同分数百分比的数据,并针对学生人数绘制了直方图。让我们了解以下示例。
范例-
from matplotlib import pyplot as plt
from matplotlib import pyplot as plt
percentage = [97,54,45,10, 20, 10, 30,97,50,71,40,49,40,74,95,80,65,82,70,65,55,70,75,60,52,44,43,42,45]
number_of_student = [0,10,20,30,40,50,60,70,80,90,100]
plt.hist(percentage, number_of_student, histtype='bar', rwidth=0.8)
plt.xlabel('percentage')
plt.ylabel('Number of people')
plt.title('Histogram')
plt.show()
输出:
让我们理解另一个例子。
示例-2:
from matplotlib import pyplot as plt
# Importing Numpy Library
import numpy as np
plt.style.use('fivethirtyeight')
mu = 50
sigma = 7
x = np.random.normal(mu, sigma, size=200)
fig, ax = plt.subplots()
ax.hist(x, 20)
ax.set_title('Historgram')
ax.set_xlabel('bin range')
ax.set_ylabel('frequency')
fig.tight_layout()
plt.show()
输出:
散点图用于将变量与其他变量进行比较。它定义为一个变量如何影响另一变量。数据表示为点的集合。让我们了解以下示例。
范例-
from matplotlib import pyplot as plt
from matplotlib import style
style.use('ggplot')
x = [4,8,12]
y = [19,11,7]
x2 = [7,10,12]
y2 = [8,18,24]
plt.scatter(x, y)
plt.scatter(x2, y2, color='g')
plt.title('Epic Info')
plt.ylabel('Y axis')
plt.xlabel('X axis')
plt.show()
输出:
示例-2:
import matplotlib.pyplot as plt
a = [2, 2.5, 3, 3.5, 4.5, 4.7, 5.0]
b = [7.5, 8, 8.5, 9, 9.5, 10, 10.5]
a1 = [9, 8.5, 9, 9.5, 10, 10.5, 12]
b1 = [3, 3.5, 4.7, 4, 4.5, 5, 5.2]
plt.scatter(a, b, label='high income low saving', color='b')
plt.scatter(a1, b1, label='low income high savings', color='g')
plt.xlabel('saving*100')
plt.ylabel('income*1000')
plt.title('Scatter Plot')
plt.legend()
plt.show()
输出:
在本教程中,我们讨论了在数据可视化中使用的所有基本图类型。要了解有关图的更多信息,请访问我们的matplotlib教程。