文章目录

  • 前言
  • 安装Matplotlib
  • 用PyPlot创建一个简单的线条图
  • 创建条形图
  • 创建饼图
  • 添加标签
  • 在情节中添加标题
  • 创造传奇
  • 显示多个数字
  • 包起来

前言

数据可视化是与他人共享数据的重要方法。有些人将可视化称为图解、图表或图形。在本文中,这些名称是同义词。

Python有许多第三方包,用于数据可视化。事实上,有这么多,它可能有点压倒性。其中最古老和最受欢迎的是Matplotlib。Matplotlib以在Python中创建静态、动画和交互式可视化而闻名。

您可以使用Matplotlib创建许多不同类型的绘图和图表。它还与其他数据科学和数学库(如NumPy和熊猫。您还会发现Matplotlib可以使用Python的大多数GUI工具包,例如Tkinter、wxPython和PyQt。因为Matplotlib是众所周知的,所以本文将介绍它的图形化包。

您将了解以下主题:

  • 用PyPlot创建一个简单的线条图
  • 创建条形图
  • 创建饼图
  • 添加标签
  • 在情节中添加标题
  • 创造传奇
  • 显示多个数字

让我们开始用Matplotlib作图吧!

安装Matplotlib

您需要安装Matplotlib才能使用它。幸运的是,这样做很容易。pip:

python -m pip install matplotlib

这将安装Matplotlib以及它所需的任何依赖项。现在你已经准备好开始绘图了!

用PyPlot创建一个简单的线条图

创建图表(或图表)是使用绘图包的主要目的。Matplotlib有一个名为pyplot用来创建图表。要开始,继续创建一个名为line_plot.py并添加以下代码:

# line_plot.pyimport matplotlib.pyplot as pltdef line_plot(numbers):plt.plot(numbers)plt.ylabel('Random numbers')plt.show()if __name__ == '__main__':numbers = [2, 4, 1, 6]line_plot(numbers)

你在这里进口matplotlib.pyplot如plt。然后创建一个line_plot()它接受Python的数字列表。若要绘制数字,请使用plot()功能。您还可以向y轴添加一个标签。最后,你打电话show()显示情节。

现在,您应该可以看到如下所示的窗口:

现在您知道了如何使用Matplotlib创建一个简单的线条图!现在,您将在下一节中了解如何制作条形图。

创建条形图

使用Matplotlib创建条形图与创建线条图非常相似。只是需要一些额外的争论。继续创建一个名为bar_chart.py并在其中输入以下代码:

# bar_chart.pyimport matplotlib.pyplot as pltdef bar_chart(numbers, labels, pos):plt.bar(pos, numbers, color='blue')plt.xticks(ticks=pos, labels=labels)plt.show()if __name__ == '__main__':numbers = [2, 1, 4, 6]labels = ['Electric', 'Solar', 'Diesel', 'Unleaded']pos = list(range(4))bar_chart(numbers, labels, pos)

创建条形图时,请使用bar(),则传递x轴的值列表。然后你传递给酒吧的高度列表。您还可以选择为条形图设置颜色。在这种情况下,您将它们设置为“蓝色”。接下来,设置xticks(),这是沿着x轴应该出现的勾号。您还传递了与滴答对应的标签列表。

继续运行以下代码,您将看到以下图表:

您还可以使用Matplotlib制作水平条形图。你所需要做的就是改变bar()到barh()。创建一个名为bar_chartsh.py并添加以下代码:

# bar_charth.pyimport matplotlib.pyplot as pltdef bar_charth(numbers, labels, pos):plt.barh(pos, numbers, color='blue')plt.yticks(ticks=pos, labels=labels)plt.show()if __name__ == '__main__':numbers = [2, 1, 4, 6]labels = ['Electric', 'Solar', 'Diesel', 'Unleaded']pos = list(range(4))bar_charth(numbers, labels, pos)

这里还有另外一个鬼鬼祟祟的变化。你能认出它吗?更改是,因为它现在是一个水平条形图,所以您需要将yticks()而不是xticks()否则看起来就不太好了。

一旦准备就绪,运行代码,您将看到以下内容:

这看起来很棒,而且它根本不需要太多的代码!现在,让我们了解如何使用Matplotlib创建饼图。

创建饼图

派图有点不同。要创建饼图,您将使用Matplotlib的subplots()函数,该函数返回Figure和一个Axes对象。要了解它是如何工作的,请创建一个名为pie_chart_plain.py然后把这个代码放进去:

# pie_chart_plain.pyimport matplotlib.pyplot as pltdef pie_chart():numbers = [40, 35, 15, 10]labels = ['Python', 'Ruby', 'C++', 'PHP']fig1, ax1 = plt.subplots()ax1.pie(numbers, labels=labels)plt.show()if __name__ == '__main__':pie_chart()

在这段代码中,您可以创建subplots()然后使用pie()方法Axes对象。您将像以前一样传递一个数字列表,以及一个标签列表。然后,当您运行代码时,您将看到您的饼图:

对于这么短的一段代码来说,这是相当不错的。但是你可以把你的饼图做得更好。创建一个名为pie_chart_fancy.py并添加以下代码以查看如何:

# pie_chart_fancy.pyimport matplotlib.pyplot as pltdef pie_chart():numbers = [40, 35, 15, 10]labels = ['Python', 'Ruby', 'C++', 'PHP']# Explode the first slice (Python)explode = (0.1, 0, 0, 0)fig1, ax1 = plt.subplots()ax1.pie(numbers, explode=explode, labels=labels,shadow=True, startangle=90,autopct='%1.1f%%')ax1.axis('equal')plt.show()if __name__ == '__main__':pie_chart()

在本例中,您可以使用explode参数可以告诉饼图“爆炸”或从饼饼中删除一片。在本例中,删除第一个片段,它对应于“Python”。您还添加了一个shadow派图上。您可以告诉您的饼图逆时针旋转一定数量的度,通过设置startangle。如果要显示切片百分比,可以使用autopct,它将使用Python的字符串内插语法。

运行此代码时,饼图现在将如下所示:

是不是很干净?你的饼图现在看起来更漂亮了!现在是时候学习如何添加标签到您的其他图形!

添加标签

在绘制数据时,通常需要对轴进行标记。属性来标记x轴。xlabel()函数,您可以使用相应的ylabel()功能。要了解这是如何工作的,请创建一个名为bar_chart_labels.py并将以下代码添加到其中:

# bar_chart_labels.pyimport matplotlib.pyplot as pltdef bar_chart(numbers, labels, pos):plt.bar(pos, numbers, color='blue')plt.xticks(ticks=pos, labels=labels)plt.xlabel('Vehicle Types')plt.ylabel('Number of Vehicles')plt.show()if __name__ == '__main__':numbers = [2, 1, 4, 6]labels = ['Electric', 'Solar', 'Diesel', 'Unleaded']pos = list(range(4))bar_chart(numbers, labels, pos)

在这里,你打电话给两个人xlabel()和ylabel()并将它们设置成不同的字符串。这分别在图的下面和图的左边添加了一些解释性文本。结果如下:

看起来挺不错的。您的图表更容易理解,但它缺少一个标题。您将在下一节中学习如何做到这一点!

在情节中添加标题

使用Matplotlib向图形添加标题非常简单。实际上,您所需要做的就是使用title()函数添加一个。要了解如何创建一个名为bar_chart_title.py并将以下代码添加到其中:

# bar_chart_title.pyimport matplotlib.pyplot as pltdef bar_chart(numbers, labels, pos):plt.bar(pos, [4, 5, 6, 3], color='green')plt.bar(pos, numbers, color='blue')plt.xticks(ticks=pos, labels=labels)plt.title('Gas Used in Various Vehicles')plt.xlabel('Vehicle Types')plt.ylabel('Number of Vehicles')plt.show()if __name__ == '__main__':numbers = [2, 1, 4, 6]labels = ['Electric', 'Solar', 'Diesel', 'Unleaded']pos = list(range(4))bar_chart(numbers, labels, pos)

这里的主要更改是在第9行调用title()然后传入一根绳子。这设置了图表的标题,默认情况下,它沿着顶部居中。可以通过设置loc参数为“左”或“右”,但不能指定标题位于顶部以外的任何位置。还有一个fontdict参数,可用于控制标题字体的外观。

您还可以向图中添加一个新的条形图。这可以帮助您了解堆叠的条形图是什么样子,也可以帮助您为下一节做好准备。

下面是您的图表现在的样子:

这张图看上去更好,但仍然遗漏了一些东西。噢!你需要一个传奇!接下来我们来看看怎么做。

创造传奇

向Matplotlib图添加一个图例也很简单。您将使用legend()函数添加一个。创建一个名为bar_chart_legend.py。然后,将以下代码添加到其中:

# bar_chart_legend.pyimport matplotlib.pyplot as pltdef bar_chart(numbers, labels, pos):plt.bar(pos, [4, 5, 6, 3], color='green')plt.bar(pos, numbers, color='blue')plt.xticks(ticks=pos, labels=labels)plt.xlabel('Vehicle Types')plt.ylabel('Number of Vehicles')plt.legend(['First Label', 'Second Label'], loc='upper left')plt.show()if __name__ == '__main__':numbers = [2, 1, 4, 6]labels = ['Electric', 'Solar', 'Diesel', 'Unleaded']pos = list(range(4))bar_chart(numbers, labels, pos)

在这里添加一个legend()就在你面前show()图表。创建图例时,可以通过传递字符串列表来设置标签。列表应该与图中的图数相匹配。还可以使用loc参数。

运行此代码时,您将看到您的图形更新如下:

现在,您的图包含了您希望在图中包含的所有正常组件。至此,您已经看到了许多使用Matplotlib可以完成的任务。最后一个要学习的主题是如何使用Matplotlib添加多个数字。

显示多个数字

Matplotlib允许您在展示之前创建几个情节。这使您可以同时处理多个数据集。有几种不同的方法可以做到这一点。您将看到最简单的方法之一。

创建一个名为multiple_figures.py并添加以下代码:

# multiple_figures.pyimport matplotlib.pyplot as pltdef line_plot(numbers, numbers2):first_plot = plt.figure(1)plt.plot(numbers)second_plot = plt.figure(2)plt.plot(numbers2)plt.show()if __name__ == '__main__':numbers = [2, 4, 1, 6]more_numbers = [5, 1, 10, 3]line_plot(numbers, more_numbers)

在这里,您创建了两个线条图。在你策划之前,你打电话给figure(),它为调用后的绘图创建一个顶级容器。因此,第一个图添加到图一,第二个图添加到图2。show()最后,Matplotlib将打开两个窗口,每个图分别显示。

运行代码,您将在计算机上看到以下两个窗口:

Matplotlib还支持向单个窗口添加两个或多个绘图。若要查看该文件的工作原理,请创建另一个新文件并命名此文件。multiple_plots.py。为了使事情更有趣,您将在本例中使用NumPy创建这两个情节。

注:如果您还没有安装NumPy,则需要安装NumPy才能使此示例正常工作。

此示例基于Matplotlib文档中的一个:

# multiple_plots.pyimport matplotlib.pyplot as plt
import numpy as npdef multiple_plots():# Some example data to displayx = np.linspace(0, 2 * np.pi, 400)y = np.sin(x ** 2)fig, axs = plt.subplots(2)fig.suptitle('Vertically stacked subplots')axs[0].plot(x, y)axs[1].plot(x, -y)plt.show()if __name__ == '__main__':multiple_plots()

在这里,您创建了相当于两个独立的正弦波图。要使它们都出现在同一个窗口中,您可以调用subplots(),这是在单个调用中创建多个数字的方便实用程序。然后,您可以使用Axes对象来绘制用NumPy创建的数据。

结果如下所示:

如果不想使用NumPy,可以绘制上一个示例中的两组数字。事实上,你应该试试。继续创建一个名为multiple_plots2.py并添加以下代码:

# multiple_plots2.pyimport matplotlib.pyplot as pltdef multiple_plots():numbers = [2, 4, 1, 6]more_numbers = [5, 1, 10, 3]fig, axs = plt.subplots(2)fig.suptitle('Vertically stacked subplots')axs[0].plot(numbers)axs[1].plot(more_numbers)plt.show()if __name__ == '__main__':multiple_plots()

在此代码中,您将完全删除NumPy代码,并从前面的示例中添加两个数字列表。然后使用Axes对象。

这导致了以下堆叠情节:

此时,您应该很好地掌握了如何使用Matplotlib创建多个图形和叠加的绘图。

包起来

Matplotlib是一个很好的包,您可以使用它来创建各种整洁的图形。令人惊讶的是,您需要编写几行代码才能根据数据创建有用的绘图。在本文中,您了解了以下主题:

  • 用PyPlot创建一个简单的线条图
  • 创建条形图
  • 创建饼图
  • 添加标签
  • 在情节中添加标题
  • 创造传奇
  • 显示多个数字

Matplotlib非常强大,有许多特性在这里没有涉及。您可以使用Matplotlib创建许多其他类型的可视化。

有一个较新的包,名为海航这是建立在Matplotlib之上的,使它的图形看起来更好。还有许多其他完全独立的Python图形化包。您会发现Python支持几乎任何类型的图,并且可能有许多您不知道的图。

非常感谢大家的阅读!

Matplotlib--用Python创建各种数据可视化图形相关推荐

  1. Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用

    Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...

  2. python基于web可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)

    转自:数据派ID:datapi 作者:Alark Joshi 翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一 ...

  3. python交互式数据可视化_基于Python实现交互式数据可视化的工具,你用过几种?...

    作者:Alark Joshi 翻译:陈雨琳 来源:数据派THU(ID:DatapiTHU) 我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已 ...

  4. python实现数据可视化软件_基于Python实现交互式数据可视化的工具

    作者:Alark Joshi 翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课 ...

  5. pythonweb数据可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)

    翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一 ...

  6. python爬虫及数据可视化分析

    python爬虫及数据可视化分析 1.前言 2.数据爬取 2.1定位到爬取数据 2.2爬虫实现方法 3.数据可视化分析 3.1将短文学网的各类文章做一个统计 3.2对某一类文章进行分析 1.前言 本篇 ...

  7. Py之pyecharts:python包之数据可视化包pyecharts简介、安装、使用方法之详细攻略

    Py之pyecharts:python包之数据可视化包pyecharts简介.安装.使用方法之详细攻略 目录 pyecharts简介 pyecharts的安装 pyecharts的使用方法 1.图形绘 ...

  8. python 爬虫及数据可视化展示

    python 爬虫及数据可视化展示 学了有关python爬虫及数据可视化的知识,想着做一些总结,加强自己的学习成果,也能给各位小伙伴一些小小的启发. 1.做任何事情都要明确自己的目的,想要做什么,打算 ...

  9. Python爬虫以及数据可视化分析

    Python爬虫以及数据可视化分析之Bilibili动漫排行榜信息爬取分析 简书地址:https://www.jianshu.com/u/40ac87350697 简单几步,通过Python对B站番剧 ...

最新文章

  1. 易语言静态连接器提取_易语言静态编译链接器切换工具
  2. java字符流和字节流的区别_java字符流与字节流的区别是什么
  3. 在linux系统中 环境变量是非常重要,【论述题】在UNIX/Linux系统中,环境变量是非常重要,在字符界面下试说明: 1 PATH 变量...
  4. php持久对象,php-在理论中具有两个外来身份的持久对象
  5. #史上最详解# IIS服务器查看log日志
  6. python自学月收入20k_每天自学2小时,18周便可月入20K,437集python自学资料拿走不谢...
  7. 全新 ENVI Modeler 遥感建模工具
  8. android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
  9. 网络请求返回数据格式_原生 Ajax 详解 - 响应数据格式
  10. 3D纹理贴图制软件The Foundry Mari for Mac
  11. JavaScript学习手册十一:JSON
  12. 【提升笔记本续航】WIN10笔记本打开电源选项中的处理器电源管理
  13. WhatsApp选择了便利而不是隐私,这是解决问题的方法
  14. 认识计算机教案模板表格,word表格制作教学设计范文
  15. 威斯康星大学计算机科学教授,美国威斯康星大学周家振访问沈阳自动化所
  16. 无人机利用视觉slam实现位置估计
  17. 【windows】中下载并安装Python(简单明了)
  18. 如何听节拍器_节拍器使用方法
  19. Swoole基础知识,安装,websocket应用及各种问题详解
  20. Windows下 开机自启动jar包

热门文章

  1. 如何进行电脑关机也是一种学问
  2. Android 气泡动画(自定义View类)
  3. 计算机出现家庭组图标怎么删除,Win7系统如何删除资源管理器左侧导航栏“家庭组”图标...
  4. ajv,json-schema 使用
  5. 计算机考试可以用华为m6吗,华为m6可以当笔记本用吗
  6. Linux安装GCC(最新版)
  7. 【笔记】程序的机器级表示
  8. 【linux】Debian10.8安装中文输入法-搜狗输入法
  9. 文献调研-词云图的制作
  10. Go 接口,接口继承