当前位置: 首页 > 网络应用技术

使用matplotlib进行数据可视化(2)

时间:2023-03-08 12:11:36 网络应用技术

  本文是如何使用matplotlib库将matplotlib库进行“使用python”的第二部分。主要内容是如何绘制多个孩子图,向图形添加文本和注释,如何自定义坐标的轴刻度,设置自己的图纸样式,绘制三个维度图以及Seaborn库的一部分。

  首先,介绍基本方法。这是创建子图手册的一种方法。默认配置创建标准坐标轴。还有一个可选参数,该参数由图形坐标系的四个值组成。绘图工具是一致的。四个值表示底部坐标位置,左坐标位置,宽度和高度。值的值范围是左下角(原点)的0(原点),在右上角为1。

  现在显示如何创建“绘画绘画”。我们将参数设置为,这意味着坐标轴的原始点位于图形高度的65%和65%的水平,以及的宽度和高度坐标轴设置为图的20%。结果和实现代码如下:

  面向对象的图形接口中有类似的命令。

  彼此对齐的几个子图是常见的视觉任务,Matplotlib可以轻松地创建它们。底部方法是在网格中创建一个子图。该命令具有三个整数参数 - 要创建的网格映射数,列和索引值的数量,索引值从1开始,从左上角到左上角的右下角右下角的序列增加。

  该命令可以调整子图之间的间隔,并且以对象为导向的接口可以达到相同的效果:

  其中,Hspace表示图形高度的间距,WSPACE表示图形宽度的间距,其值范围为0-1,并且该值基于子图的大小。(在此示例中,距离为40%子图的宽度和高度)。

  该函数可以使用代码行创建多个子图,并返回包含子图的Numpy数组。关键参数是行和列的数量,以及可选的参数Sharex和sharey(共享x轴和y轴)。您可以通过它们设置它们。不同的子映射之间的关系。当您要创建大型子图或隐藏内部子轴和y轴标题时,这很容易使用。

  设置Sharex和Sharey之后,我们可以自动删除网格内部子数字的标签以使图形外观更加清洁。坐标轴实例网格网格的返回结果是一个numpy阵列,因此所需坐标的值可以通过标准数组值轻松获得轴:

  应该注意的是,与plt.subplot()相比,plt.subplots()和python索引与从0开始的习惯一致(plt.subplot()与MATLAB指数相似。

  如果您想实现不规则的多线和多columns.it,它不能直接创建图形,但是该命令可以识别的简单接口。范围间距如下:

  这种灵活的网格布置方法被广泛使用,例如:

  实际上,这种类型的图形非常普遍。之后,我们将介绍Seaborn图书馆提供了特殊的API来实施此图纸。

  首先,让我们导入笔记本图中需要使用的一些功能:

  我们可以在图形中手动添加文本注释,它们可以将文本放在特定的坐标点上。例如,如下:

  上一个示例将文本放在目标数据的位置上。但是有时可能需要将文本放置在与数据无关的位置,例如轴或图形。坐标。任何图形显示框架需要一些机制来更改坐标系。使用要表示的屏幕像素。Matplotlib提供了一种实现相似功能的工具。

  基于数据的坐标转换

  基于坐标轴的坐标转换(基于轴尺寸的单位)

  基于图形的坐标转换(在图形维度)

  让我们以下面的示例在三个更改中以不同的位置绘制文本:

  更改坐标轴的上限和下限只会更改transdata的坐标,而其他坐标系的坐标将不会更改。通过这种坐标变换,可以实现图形中的坐标轴。

  Matplotlib中的绘画箭头将比预期的要困难。功能和功能都可以实现箭头图。创建的箭头是SVG矢量映射对象。Willing.in.在相比之下,它将更加灵活。它可以同时创建文本和箭头,并且可以在创建的对象上灵活配置。

  演示如下:

  箭头的样式由箭头词典控制。有许多可用的选项。这不是一个人介绍他们。只有几个简单的演示:

  默认情况下)使用简单配置AutominorLocator nullformatter nullformatter没有标签indexformatter来设置标签funcornter,以设置标签funcorter,以设置标签formalfororatter.formattrfororatter.formattrfororterter.formaT scalalfrmatter(Default formatter(Default)(DefaultfrMmatter(Default)(Default Frormatter(Default)(Default Frormatter(Default)(Default Frormatter))标记logFormatter默认格式的坐标轴数以生成本节的常见比例/标记格式操作。实现,如下所示:

  这两个功能适用于不需要比例线和标签的方案。如上图所示,我们将移动x轴的标签和y轴的比例。让我们以面部的形象为例:

  接下来,我们将介绍如何设置比例数。我们可以使用它来解决此问题,以及通过它显示多少尺度。根据设置的设置数量,matplotlib将自动安排适当的位置比例。例如,在下图中,当图形显示较小时,刻度将非常拥挤。我们可以通过此功能解决此问题:

  最后,我们介绍了如何设置精美量表格式。我们不仅可以自定义主尺度和次级尺度的值和数量。matplotlib还支持乳胶的数学公式显示。它可以轻松显示数学符号和数学公式(详细信息浏览文档)。该示例如下:

  在本节中,我们将介绍如何修改单个图形配置,以使最终图形看起来比原始图形更好。我们可以个性化单个图形。首先,查看频率的默认频率是什么样的:

  接下来,让我们通过手动调整来修改此图像:

  修改后的图像的外观比默认设置更漂亮。这是允许我们使用默认图形将其应用于所有图形的方法。

  Matplotlib在每次加载时定义运行配置(RC),其中包含您创建的所有图形元素的默认样式。我们可以随时以简单的方式修改此配置。现在我们使用默认图形来实现效果来实现效果在之前的手动调整。首先复制默认RCPARAMS词典,以便您可以在修改后还原:

  接下来,我们使用该函数修改配置参数:

  现在,让我们创建一个图形以查看效果:

  创建另一个电线图以查看RC参数的效果:

  在下面,我们介绍了几个设置(绘图样式简要介绍以查看上一篇博客文章)。首先,定义一个可以绘制两个基本图形的函数:

  让我们使用此功能来演示不同样式的显示效果。

  1.默认样式

  重置rcparams后,这是默认样式。默认样式简单明了,也是一个不错的选择。

  2. FiveThirtyeight风格

  FiveThirtyeight风格模仿网站。Fivethirtyeight的绘画风格。这种样式使用深厚的线条和透明的坐标轴:

  3. GGPLOT样式

  GGPLOT样式是模仿模仿R语言的GGPLOT视觉工具的默认样式。

  4.BMH样式

  BMH样式在e -Book概率编程和黑客贝叶斯方法中继承了绘图样式。

  5.当在演示文档中显示黑色背景样式时,黑色背景通常会具有更好的效果。

  6.灰色样式

  一种适合黑白印刷的样式。

  在不同的情况下使用不同样式的视觉蛋糕。

  首先

  最基本的三维图是一个线图和散点图,由(x,y,z)组成,三维坐标。类似于前面引入的普通两个尺寸图,您可以使用函数创建它们。let the triangle the triangle螺旋线和一些分散点为例:

  像两个维图一样,所有数据也必须是两个维网格数据的形式,并且Z轴的功能由函数计算。以下显示了具有三维正弦函数的三维高线图:

  我们还可以调整观察角和方向角。现在,我们将音高角度调整为60度(即X-Y平面的旋转角度为60°),并将祖先角调节到35度(即,围绕Z轴35°):

  接下来,介绍其他两种类型的图形数据的三维图表 - WIRE框架图和曲面图。它们所有这些都将网格数据映射到三维弯曲的表面,并且获得的三维形状非常容易可视化.below是电线框架图的一个示例:

  弯曲图与电线框架图相似,仅电线框架图的每个表面由多边形组成。只要添加了配色方案以填充这些多边形,读者就可以感觉到该表面上的拓扑结构视觉图:

  应该注意的是,弯曲的图需要两个维数据,但不能是正确的角坐标系(可以使用极坐标)。以下示例创建了局部极点坐标网格。当我们将其绘制为Surface3D图形时,我们可以获得使用切片的视觉效果:

  我们首先创建一组随机数据,并生成一个分散的图片:

  接下来,我们使用该函数来帮助我们将此图形固定为曲面图。它首先找到连接到所有点的三角形,然后使用这些三角形来创建弯曲的表面:

  尽管此方法绘制的图形之前不必以均匀的网格完美绘制,但此三角形部分方法非常灵活,并且可以创建各种有趣的三维图。

  地理数据的可视化是数据科学中一种非常常见的可视化类型。Matplotlib这种可视化的主要工具是基本图工具箱。它是Matplotlib的Mpl_toolkits.now中的众多工具箱之一,我们将展示一些使用BaseMap Toolbox绘制地图的视觉示例。

  安装BaseMap程序软件包后,我们运行以下代码:

  这里显示的地球不是静态图片。它是用球形坐标构建的完整的Matplotlib坐标轴,可以轻松地将数据添加到地图中。例如,我们可以放大地图并在地图上标记北京的位置:

  在下面,我们将介绍BaseMap的主要特征,并通过一些视觉图的示例进行演示。

  首先定义了绘制纬度和纬线图的简单方法:

  1.圆柱投影

  设置左下角(LLCRNR),右上角(URCRNR),纬度(LAT)和经度(LON)的参数。

  其他两种类型的圆柱投影是makato()投影和圆柱投影()。

  2.伪 - 圆柱形投影

  其他两种类型的伪 - 圆柱形投影是Robinson()投影的正弦()投影。

  3.透视投影

  积极投影:

  另外,还有球粘的投影()和极平面()投影。

  4. Conechical投影

  Ranbte和其他角锥投影:

  等待距离()投影()投影以及Albertes和其他累积的锥体()投影。锥体投影与看到一个小小的和中尺寸的映射相同。

  下面给出了BaseMap中某些功能的使用:|功能名称|使用|| - | - | - ||bluemarble(),shadedrelief()|绘制地球投影||drawpalallels(),drawmeridians()|统计||drawcoastlines()|画大陆海岸线||drawlsmask()|为土地和海洋设置设置颜色,以便其他陆地或海洋投影的图像||drawmapboundry()|绘制海洋的地图边框||||||||||||||||||||||||||| drawRivers()|画河||fillcontinents()|用一种颜色填充大陆,然后填充湖泊(可选)||drawcountries()|绘制国家边界线||drawgreatcil()|在两个点之间的两个点之间绘制两个点||drawparallels()|绘制纬纱||drawmeridians()|绘制子午线||drawmapscale()|在地图上绘制线性比率||etopo()||将用户提供的图像投射到地球|

  如果要使用边框特性,则必须在创建基本图形图时设置分辨率。基本式类别提供了一个分辨率参数来设置边界的分辨率,分为“ C”(原始分辨率),“ L”(低分辨率),“ i”(中分辨率),'H'(高分辨率)(高分辨率),'f'(全图质量分辨率),如果不使用边界线将其设置为无,则此参数的设置确定图形渲染的速度。let的以下示例以比较不同的渲染效果:

  首先,我们与Matplotlib的传统风格与海洋风格进行了简单的比较:

  可以看出,Seaborn使用的默认样式和参数的效果将比传统的Matplotlib格式更好。

  让我们在Seaborn中介绍一些常见的图形绘图方法。

  1.频繁的直方图,KDE和密度图

  频率直方图:

  KDE地图:

  我们可以使用功能将两者结合在一起:

  如果将两个维数据集输入到KDEPLOT,则可以获取两个维度数据可视地图:

  同时使用两个变量的联合分布的独立分布和单个变量。在此图形中,使用白色背景:

  您可以将一些参数传递到关节图功能。例如,您可以使用六边形块而不是频率直方图:

  2.当矩阵映射需要视觉可视化时,必须在末尾使用对图。相关性非常有效。below我们使用虹膜数据集说明:

  3.观察面部频率数据的最佳方法是观察数据的最佳方法。Seaborn的功能可以绘制这样的图形。

  4.因子图也是数据子集可视化的一种方法。我们可以在另一个参数之间的间隔中观察一个参数的分布:

  5.类似于矩阵图的组合分布图,您可以使用不同数据集的组合分布以及每个数据本身的分布:

  组合分布也可以自动执行KDE和回归:

  6.条形图

  在这一点上,本章的内容已经结束,希望为您提供帮助。