您现在的位置是:热点 >>正文
手把手教你用Matplotlib进行数据可视化
热点80453人已围观
简介...
01 导入Matplotlib
如果你安装了完整的Python Anaconda,那么你已经安装了Matplotlib,可以开始了。否则,你可能要访问官网获取安装说明。
http://matplotlib.org
就像我们用缩写np来表示NumPy一样,我们也会用一些标准的缩写来表示Matplotlib导入:
import matplotlib as mpl import matplotlib.pyplot as plt
plt是我们最常用的一个接口。
0手把2 生成一个简单的图形
言归正传,让我们创建第一个图形。
假设我们要绘制正弦函数sin(x)的一个简单线图。我们希望函数求x轴(0≤x≤10)上的所有值。我们将使用NumPy的linspace函数在x轴上创建一个线性空间,x值从0到10,共100个样本点:
import numpy as np x = np.linspace(0, 10, 100)
我们可以使用NumPy的sin函数求sin函数的所有x值,并通过调用plt的plot函数可视化结果:
plt手教.plot(x, np.sin(x))
你亲自试过了吗?发生什么了?有什么发现吗?
问题是,这取决于你在何处运行这个脚本,你可能什么都看不到。以下是可以考虑的可能性:
1. 从.py脚本绘图
如果你正从一个脚本运行matplotlib,那么你只需要调用plt,如下所示:
plt.show()
调用后,图形就会显示出来!
2. 从IPython shell绘图
这实际上是以交互方式运行matplotlib的最便捷的方式之一。要显示绘图,你需要在启动IPython之后,调用%matplotlib魔术命令:
%matplotli你用b Using matplotlib backend: Qt5Agg import matplotlib.pyplot as plt
然后,所有图都会自动显示出来,不必每次都调用plt.show()。
3. 从Jupyter Notebook绘图
如果你从基于浏览器的Jupyter Notebook上查看这段代码,你需要使用同样的%matplotlib魔术命令。可是,你还可以选择将图形直接嵌入notebook中,这有两种可能的结果:
&nbMasp;%matplotlib notebook将生成的交互式图嵌入notebook中。 %matplotlib inline将生成的静态图嵌入notebook中。
我们通常会选择内联选项:
%matplotlib inline
现在,让我们再试一次:
plt.plot(x, np.sin(x))
上述命令给出的输出如图2-4所示。
▲图2-4 应用内联选项生成的图
稍后,如果你想保存图表,可以直接从IPython或Jupyter Notebook的选项中保存:
plt.savefig('figures/02tp.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(),再lo尝试绘制其他内容。
03 可视化外部数据集的数据
作为本文的最后一个测试,让我们可视化一些来自外部数据集的数据,例如scikit-learn的digits数据集。
具体来说,我们将需要3个可视化工具:
用于实际数据的scikit-learn 用于数据处理的NumPy Matplotlib
首先,让我们导入所有这些可视化工具:
import numpy as np from sklearn import datasets &nbtlsp;import matplotlib.pyplot as plt %matplotlib inline
第一步是实际加载数据:
digits = datasets.load_digits()
如果我们没有记错的话,digits应该有2个不同的字段:一个是data字段,包含实际的图像数据;另一个是target字段,包含图像标签。
与其相信我们的记忆,不如让我们研究一下digits对象。这通过输入字段名称、添加句点、再按下Tab键—digitsib.来实现。这会显示出digits对象还包含了一些其他字段,例如一个名为images的字段。images和data这2个字段似乎只是形状不同:
print(digits.data.shape) print(digits.images.shape)
输出结果:
(1797, 64) (1797, 8, 8)
在这两个例子中,第一维都对应于数据集中的图像数。但是data将所有像素排列在一个大的向量中,而images则保留了每个图像的8×8空间排列。
因进行此,如果我们想绘制单张图像,images字段可能更合适。首先,使用NumPy的数组切割,从数据集中抓取一张图像:
img = digits.images[0, :, :]
这里,我们说想要抓取长为1797项的数组中的第一行,以及所有对应的8×8=64个像素。然后,我们可以使用plt的imshow函数绘制图像:
plt.imshow(img, cmap='gray') plt.savefig('figures/02.04-digit0.png')
上数据述命令给出的输出如图2-5所示。请注意,图像是模糊的,因为我们将该图像调整到了更大的尺寸。原始图像的大小只有8×8。
▲图2-5 生成单张图像的示例结果
此外,我们还可以使用cmap参数指定一个彩图。在默认情况下,Matplotlib使用MATLAB的默认彩图jet。可是,对于灰度图像,gray彩图更有意义。
最后,我们可以利用plt的subplot函数绘制一组数字样本。subplot函数与在MATLAB中一样,我们指定行数、列数以及当前子图的索引(从1开始)。我们将使用一个for循环遍历数据集中的前10个图像,每个图像都有自己的子图:
plt.f可视igure(figsize=(14, 4)) for image_index in range(10): # images are 0-indexed, subplots are 1-indexed subplot_index = image_index&nbs手把p;+ 1 plt.subplot(2, 5, subplot_index) plt.imshow(digits.images[image_index, :, :], cmap='gray')
生成的输出如图2-6所示。
▲图2-6 生成包含10个数字的一组子图
对于各种数据集,另一个很好的资源是本书作者迈克尔·贝耶勒的母校加州大学欧文分手教校的机器学习资源库:
http://archive.ics.uci.edu/ml/index.php
关于作者:阿迪蒂亚·夏尔马(Aditya Sharma),罗伯特·博世(Robert Bosch)公司的一名高级工程师,致力于解决真实世界的自动计算机视觉问题。曾获得罗伯特·博世公司2019年人工智能编程马拉松的首名。
维什韦什·拉维·什里马利(Vishwesh Ravi Shrimali),于2018年毕业于彼拉尼博拉理工学院(BITS Pilani)机械工程专业。此后一直在BigVision LLC从事深度学习和计算机视觉方面的工作,还参与了官方O你用penCV课程的创建。
迈克尔·贝耶勒(Michael Beyeler),是华盛顿大学神经工程和数据科学的博士后研究员,致力于仿生视觉的计算模型研究,以为盲人植入人工视网膜(仿生眼睛),改善盲人的感知体验。他的工作属于神经科学、计算机工程、计算机视觉和机器学习的交叉领域。
本文摘编自《机器学习:使用OpenCV、Python和scikit-learn进行智能图像处理(原书第2版)》,经出版方授权发布。
Tags:
相关文章
有了这支矢量神经风格画笔,无需GAN也可生成精美绘画
热点在 CVPR 2021 的一篇论文中,来自网易伏羲和密歇根大学的研究者提出了一种图像到绘画的转换方法,可以生成生动逼真且风格可控的画作。目前该方法的实现代码已开源。 论文地址: https://arx...
【热点】
阅读更多亚马逊云计算业务二季度营收突破300亿美元 上半年超过600亿美元
热点8月1日消息,据外媒报道,在苹果发布截至6月28日的2025财年第三财季财报的当地时间周四,电商和云计算巨头亚马逊,也发布了他们第二季度的财报,主要利润来源的云计算业务的营收,还在继续增加,并首次超过...
【热点】
阅读更多标签: 英特尔 OpenAI 卡蒂 人工智能
热点云梦级11月11日云梦级消息,英特尔 CTO 萨钦・卡蒂(Sachin Katti)11 日宣布加入 OpenAI,将在后者基础设施岗位任职。英特尔表示:在卡蒂离职后,陈立武将领导英特尔的人工智能业务...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.kingston.gov.uk/site-search/results/?q=谷歌留痕教程【tg:seogoogle987】,xHV
- https://www.randjleather.co.uk/index.php?route=product/search&tag=谷歌留痕教程【tg:seogoogle987】,EDh
- https://www.krisinformation.se/en/search?q=谷歌留痕教程【tg:seogoogle987】,gnE
- https://www.yli.ro/catalogsearch/result/?q=谷歌留痕教程【tg:seogoogle987】,HNZ
- https://www.mygrandma.com/Items.aspx?search=谷歌留痕教程【tg:seogoogle987】,hxr
- https://www.routesonline.com/search/?query=谷歌留痕教程【tg:seogoogle987】,ICW
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌留痕教程【tg:seogoogle987】,wba
- https://www.rostaing.com/catalogsearch/result/?cat=22&q=谷歌留痕教程【tg:seogoogle987】,Bck
- https://www.schenckprocess.com/search?q=谷歌留痕教程【tg:seogoogle987】,mIl
- https://www.military-history.org/?s=谷歌留痕教程【tg:seogoogle987】,Nce
- https://wwwcp.umes.edu/search/谷歌留痕教程【tg:seogoogle987】,mgY
- https://www.nonsolocap.it/cap?action=SEARCH&k=谷歌留痕教程【tg:seogoogle987】,vQS
- https://www.lgnewsroom.com/search/谷歌留痕教程【tg:seogoogle987】,DDG
- https://www.wikiart.org/pt/Search/谷歌留痕教程【tg:seogoogle987】,omI
- https://www.goodreads.com/quotes/tag/谷歌留痕教程【tg:seogoogle987】voN
- https://www.mingwai.edu.hk/?langzh-hant&s=谷歌留痕教程【tg:seogoogle987】,D3Z
- https://www.thedp.com/page/search?q=谷歌留痕教程【tg:seogoogle987】,Hs3
- https://www.losgatoschamber.com/list/search?action=SEARCH&q=谷歌留痕教程【tg:seogoogle987】,xlL
- https://www.xvideos.com/tags/谷歌留痕教程【tg:seogoogle987】,tYb
- https://www.metaltix.com/?view=tours&filter=search&q=谷歌留痕教程【tg:seogoogle987】,56S
- https://www.luxurysociety.com/en/search?q=谷歌留痕教程【tg:seogoogle987】,a3x
- https://www.wellbees.com/index.php/catalogsearch/result/index/?q=谷歌留痕教程【tg:seogoogle987】,Z5V
- https://www.qidulp.com/search?query=谷歌留痕教程【tg:seogoogle987】,bif
- https://www.usslexington.com/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,cQS
- https://www.lenovo.com/gb/en/search?action=SEARCH&text=谷歌留痕教程【tg:seogoogle987】,gZa
- https://www.monroecounty.gov/search/?q=谷歌留痕教程【tg:seogoogle987】,4xU
- https://www.realsporting.com/buscador?buscar=谷歌留痕教程【tg:seogoogle987】,Pjv
- https://www.symatoys.com/search.html?ID=UyMD6aO58bPrJvQAB1I0N69KzJBZeNPC&keyword=谷歌留痕教程【tg:seogoogle987】,GfO
- https://www.unclefossil.com/search/谷歌留痕教程【tg:seogoogle987】gad_source=1&gclid=Cj0KCQjw_-GxBhC1ARIsADGgDjsNKplUXa2F6YGlHBK2sHDQ88cgsJBb05DyO99TV9jNq_cT0kGMqyQaAgHQEALw_wcB
- https://www.kaskus.co.id/search?q=谷歌留痕教程【tg:seogoogle987】,UzI
- https://www.teamlab.art/pt/?submit=谷歌留痕教程【tg:seogoogle987】,f4F
- https://www.valuecolleges.com/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,YWG
- https://www.tcv.org.uk/search/谷歌留痕教程【tg:seogoogle987】,EZO
- https://www.wuv.edu/?s=谷歌留痕教程【tg:seogoogle987】,DkL
- https://www.vocabulary.com/dictionary/谷歌留痕教程【tg:seogoogle987】,kmg
- https://www.so.com/s?ie=utf-8&src=360sou_home&_re=0&q=谷歌留痕教程【tg:seogoogle987】,eXC
- https://www.teamlab.art/fr/?submit=谷歌留痕教程【tg:seogoogle987】,piM
- https://www.lee.com/search?q=谷歌留痕教程【tg:seogoogle987】,bRI
- https://www.mi.com/search?keyword=谷歌留痕教程【tg:seogoogle987】,bs6
- https://www.pmindia.gov.in/en/?s=谷歌留痕教程【tg:seogoogle987】,FeK
- https://www.shacknews.com/editorial-search?q=谷歌留痕教程【tg:seogoogle987】,WIK
- https://www.zutari.com/?s=谷歌留痕教程【tg:seogoogle987】,PFM
- https://www.nslcleaders.org/?s=谷歌留痕教程【tg:seogoogle987】,oYh
- https://www.paulaschoice.hk/zh_hant/catalogsearch/result/?q=谷歌留痕教程【tg:seogoogle987】,Omb
- https://www.resilienz-akademie.com/?cat=71&s=谷歌留痕教程【tg:seogoogle987】,Oyw
- https://www.tiktok.com/tag/谷歌留痕教程【tg:seogoogle987】,X9G
- https://www.spicebar.de/catalogsearch/result/?q=谷歌留痕教程【tg:seogoogle987】,9tr
- https://hsmoa.com/search?query=谷歌留痕教程【tg:seogoogle987】wcC
- https://www.ussalabama.com/?action=CHECK&s=谷歌留痕教程【tg:seogoogle987】,L86
- https://www.partilerdunyasi.com/index.php?route=product/search&tag=谷歌留痕教程【tg:seogoogle987】,1T5