如何在Python中绘制图表

如何在Python中绘制图表

Python提供了一个最流行的绘图库,叫做 Matplotlib 。它是一个开源的、跨平台的库,用于从数组中制作2D图表。它通常用于数据可视化,并通过各种图表形式呈现。

Matplotlib最初由John D. Hunter于2003年设计。最新版本的Matplotlib是于2018年1月发布的2.2.0版。

在开始使用 matplotlib库 之前,我们需要在Python环境中安装它。

安装Matplotlib

在终端中输入以下命令并按回车键。

pip install matplotlib

以上命令将在Windows操作系统上安装matplotlib库及其依赖包。

Matplotlib的基本概念

一个图表包含以下几个部分。让我们了解这些部分。

如何在Python中绘制图表

图: 它是一个整个图形,可以容纳一个或多个轴(图表)。我们可以将图形视为包含图表的画布。

轴: 一个图形可以包含多个轴。它由两个或三个(在3D情况下)轴对象组成。每个轴都由一个标题、一个x轴标签和一个y轴标签组成。

坐标轴: 坐标轴是线状对象的数量,负责生成图形的限制。

艺术家: 艺术家是我们在图表上看到的所有对象,如文本对象、Line2D对象和集合对象。大多数艺术家与轴相关联。

pyplot简介

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()  

输出:

如何在Python中绘制图表

绘制不同类型的图表

我们可以使用pyplot模块绘制各种图表。让我们看以下示例。

1. 折线图

折线图用于将信息显示为一系列折线。绘制起来很容易。考虑以下示例。

示例

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()

2. 条形图

条形图是最常见的图表之一,用于表示与分类变量相关联的数据。 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()  

3. 饼图

图表是一个圆形的图形,被分割成不同的子部分或片段。它用于表示百分比或比例数据,其中每个饼图片段代表一个特定的类别。让我们了解下面的示例。

示例

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()  

输出:

如何在Python中绘制图表

4. 直方图

直方图和柱状图非常相似,但它们之间有一些细微的差别。直方图用于表示分布情况,而柱状图用于比较不同实体。直方图通常用于绘制一组数值相对于一组数值范围的频率。

在下面的示例中,我们采用了学生不同分数百分比的数据,并根据学生人数绘制了直方图。让我们理解下面的示例。

示例

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()  

输出:

如何在Python中绘制图表

让我们来理解另一个示例。

示例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()  

输出:

如何在Python中绘制图表

5. 散点图

散点图用于比较变量与其他变量之间的关系。它定义了一个变量如何影响另一个变量。数据以一组点的形式表示。让我们了解以下示例。

示例

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()  

输出:

如何在Python中绘制图表

示例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()  

输出:

如何在Python中绘制图表

在本教程中,我们讨论了在数据可视化中使用的所有基本类型的图表。要了解更多关于图表的信息,请访问我们的matplotlib教程。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程