怎么用Matplotlib进行数据可视化

介绍

这篇文章给大家分享的是有关怎么用Matplotlib进行数据可视化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强> 01导入Matplotlib

如果你安装了完整的Python水蟒,那么你已经安装了Matplotlib,可以开始了。否,则你可能要访问官网获取安装说明。http://matplotlib.org

就像我们用缩写np来表示NumPy一样,我们也会用一些标准的缩写来表示Matplotlib导入:

 import  matplotlib  as  mpl 
 import  matplotlib.pyplot  as  plt 

plt是我们最常用的一个接口。

<强> 02生成一个简单的图形

言归正传,让我们创建第一个图形。

假设我们要绘制正弦函数罪(x)的一个简单线图。我们希望函数求x轴(0,勒;x& le; 10)上的所有值。我们将使用NumPy的linspace函数在x轴上创建一个线性空间,x值从0到10,共100个样本点:

 import  numpy  as  np 
 x =, np.linspace(0, 10日,100)

我们可以使用NumPy的罪恶函数求罪函数的所有x值,并通过调用plt的情节函数可视化结果:

 plt.plot (x), np.sin (x)) 

你亲自试过了吗?发生什么了?有什么发现吗?

问题是,这取决于你在何处运行这个脚本,你可能什么都看不到。以下是可以考虑的可能性:

<强> 1。从py脚本绘图

如果你正从一个脚本运行matplotlib,那么你只需要调用plt,如下所示:

 plt.show () 

调用后,图形就会显示出来!

<强> 2。从IPython shell绘图

这实际上是以交互方式运行matplotlib的最便捷的方式之一。要显示绘图,你需要在启动IPython之后,调用% matplotlib魔术命令:

 % matplotlib , Using  matplotlib 后端:,Qt5Agg 
 import  matplotlib.pyplot  as  plt 

然后,所有图都会自动显示出来,不必每次都调用plt.show ()。

<强> 3。从Jupyter Notebook绘图

如果你从基于浏览器的Jupyter Notebook上查看这段代码,你需要使用同样的%matplotlib魔术命令。可是,你还可以选择将图形直接嵌入notebook中,这有两种可能的结果:

  •  %matplotlib notebook将生成的交互式图嵌入notebook中。

  •  %matplotlib inline将生成的静态图嵌入notebook中。

我们通常会选择内联选项:

%matplotlib inline

现在,让我们再试一次:

plt.plot(x, np.sin(x))

上述命令给出的输出如图2-4所示。

怎么用Matplotlib进行数据可视化

▲图2-4 应用内联选项生成的图

稍后,如果你想保存图表,可以直接从IPython或Jupyter Notebook的选项中保存:

plt.savefig('figures/02.03-sine.png')

只要保证使用所支持的文件后缀即可,例如.jpg、.png、.tif、.svg、.eps或者.pdf。

在导入matplotlib之后,运行plt.style.use(style_name),你可以更改绘图的样式。在plt.style.available中列出了所有可用的样式。例如,试试plt.style.use('fivethirtyeight')、plt.style.use('ggplot')或者plt.style.use('seaborn-dark')。为了增加乐趣,可以运行plt.xkcd(),再尝试绘制其他内容。

03 可视化外部数据集的数据

作为本文的最后一个测试,让我们可视化一些来自外部数据集的数据,例如scikit-learn的digits数据集。

具体来说,我们将需要3个可视化工具:

  •  用于实际数据的scikit-learn

  •  用于数据处理的NumPy

  •  Matplotlib

首先,让我们导入所有这些可视化工具:

import numpy as np  from sklearn import datasets  import matplotlib.pyplot as plt  %matplotlib inline

第一步是实际加载数据:

digits = datasets.load_digits()

如果我们没有记错的话,digits应该有2个不同的字段:一个是data字段,包含实际的图像数据;另一个是target字段,包含图像标签。

与其相信我们的记忆,不如让我们研究一下digits对象。这通过输入字段名称、添加句点、再按下Tab键—digits.来实现。这会显示出digits对象还包含了一些其他字段,例如一个名为images的字段。images和data这2个字段似乎只是形状不同:

print(digits.data.shape)  print(digits.images.shape)

输出结果:

怎么用Matplotlib进行数据可视化