彩色绘图二维数组在可视化数组元素方面发挥着重要作用,它为每个元素提供颜色,以便我们可以轻松地区分每个元素。我们还可以通过用某种颜色绘制数组来找出数组的最大和最小范围。颜色绘图也可以方便地观察数组元素之间的模式。
Matplotlib 库用于数据可视化。它有多种适合不同类型数据的绘图类型。
在本教程中,我们将了解使用 matplotlib 库的颜色图为 2D 数组着色的综合方法。
首先,我们将学习数组、使用 numpy 创建数组以及生成随机数组元素。接下来,我们将了解如何对这些数组进行颜色绘制。
什么是数组?
数组是具有共同名称的相似项的集合。数组的元素应该具有相同的数据类型。因此,我们无法让一个数组保存多种不同的数据类型。
数组中的索引从0开始。
要访问数组的元素,我们可以使用一个整数来表示元素在数组中的位置。
下面给出一个二维数组的示例。
1
2
3
4
|
#2d array import numpy as np arr = np.array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]]) print ( "The 2d array is:\n" ,arr) |
我们正在使用 numpy 库创建一个二维数组。因此,我们在第二行将库导入为 np 。
创建后,将初始化一个名为 arr 的变量来存储数组。
最后,我们使用 print() 函数打印数组。
使用随机函数创建二维数组
在前面的示例中,我们了解了如何使用 numpy 库创建数组,其中用户指定数组的元素。我们把数组元素的生成交给计算机怎么样?
我们可以借助random
函数让计算机生成数组的随机元素。
让我们看看如何做到这一点。
1
2
3
|
import numpy as np a = np.random.rand( 5 , 5 ) print ( "The randomly generated 2d array is:\n" ,a) |
像往常一样,我们导入 numpy 库来处理数组。
我们创建一个名为 a 的变量来存储由随机函数随机生成的数组元素。np.random.rand(5,5)
表示我们将生成一个包含五行和五列随机生成值的数组。
每次运行此代码时,您都会得到不同的输出,其中元素均匀分布在 0 和 1 之间。
最后,我们打印数组。
现在我们对数组以及如何使用 numpy 库和随机函数创建数组有了清晰的了解,让我们深入研究这些数组的颜色绘制!
什么是色彩图?
在我们继续进行颜色绘图之前,我们首先需要清楚颜色图的概念。正如听起来的自我描述一样,颜色图被定义为一系列值和颜色之间的映射以可视化数据。
绘制二维数组颜色
我们可以使用 matplotlib 的方法来为我们创建的绘图数组着色。我们将尝试不同的方法来绘制数组,这可能有助于数据解释。
我们将使用的方法是:
- 使用二进制颜色图创建颜色图(用于黑白图)
- 使用 pcolormesh() 创建颜色图
- 使用 PuBuGn 创建颜色图
- 使用尺寸和颜色创建颜色图
使用二进制颜色图绘制 2D 数组的颜色图
二进制颜色图仅使用两种颜色(通常是黑色和白色)绘制数组,一种颜色代表值的一端(最高或最低),另一种颜色代表值的另一端。此表示可能会根据用于可视化的数据而有所不同。二进制颜色图是可定制的。也就是说,二值颜色图可用于以黑色和白色以及任何其他两种颜色绘制阵列。
让我们看看代码并了解如何使用二进制颜色图。
1
2
3
4
5
6
7
8
|
#using the binary colormap import matplotlib.pyplot as plt import numpy as np a = np.random.rand( 5 , 5 ) print ( "The array is :\n" ,a) print ( "*" * 15 ) print ( "The highest value in the array:" ,np. max (a)) print ( "The lowest value in the array:" ,np. min (a)) |
在第二行和第三行中,我们导入 matplotlib 和 numpy 库来可视化和创建数组。
在第三行中,我们初始化变量“a”来存储包含随机生成值的 5×5 数组。
在下面的行中,我们将打印数组。
print("*"*15)
:此行是分隔符,并在屏幕上打印 15 个星号。
在最后两行中,我们打印数组中存在的最大值和最小值,只是为了检查哪种颜色代表哪个范围。
该数组如下所示。
让我们看看如何绘制数组。
代码如下。
1
2
3
4
|
#plotting the array plt.imshow(a, cmap = 'binary' ) plt.colorbar() plt.show() |
这是代码的细分。
matplotlib 的 imshow() 方法用于将绘图或图形显示为图像。数组 a 作为此方法的第一个参数传递。阵营代表色彩图,我们这里使用的色彩图是二进制的——默认情况下,二进制色彩图以黑白绘制数据。
colorbar() 方法用于描述为数组中的值指定的颜色。
最后,使用 show 方法来显示绘图。该方法的工作原理或多或少类似于 print()。
情节如下所示。
观察数组及其最大值和最小值。数组中的最大值是 0.9941…,它出现在第二行第一列中。现在观察剧情。该元素位于 [1,0] 网格处。黑色用于表示最大值。
数组中的最小值为 0.0362,位于第三行第四列。该元素位于图中的 [2,3] 网格处。可以说白色是用来表示最小值的。
各种灰色阴影代表 0.0362 和 0.9941 范围内的所有其他值。
使用 pcolormesh 绘制 2D 阵列颜色图
matplotlib 库的 pcolormesh 函数用于创建不规则矩形网格的伪彩色图。伪着色是提供很少数量的颜色来绘制数组元素或任何数据的过程。
让我们看看如何在 2D 数组上使用 pcolormesh。
代码如下。
1
2
3
4
5
6
|
import matplotlib.pyplot as plt import numpy as np data = np.random.rand( 5 , 5 ) plt.pcolormesh(data, cmap = 'viridis' ) plt.colorbar() plt.show() |
像往常一样,我们导入 matplotlib 和 numpy 库来可视化和创建数组。
接下来,我们创建一个名为 data 的数组,以创建一个包含 25 个随机生成的数组的数组,这些数组分布在 5×5 数组中。
在下面的行中,我们使用 matplotlib 库的 pcolormesh 将数据作为第一个参数,这里使用的颜色图是 viridis。
viridis 是从深紫色到浅黄色的颜色集合。
颜色条用于描述赋予数组元素的颜色。
show 方法用于显示绘图。
使用 PuBuGn 颜色图绘制 2D 数组的颜色图
matplotlib 的 PuBuGn 颜色图用三种颜色绘制数据:紫色、蓝色和绿色。它是一个连续的颜色图,从紫色的各种色调开始绘制,然后变为蓝色,最后变为绿色。
让我们看看如何使用这个颜色图。
1
2
3
4
5
6
|
import numpy as np from matplotlib import pyplot as plt data = np.random.rand( 5 , 5 ) plt.imshow(data, cmap = 'PuBuGn' ) plt.colorbar() plt.show() |
我们在前两行中导入了 matplotlib 和 numpy 库。
我们正在创建一个数据变量来存储包含 25 个随机生成值的数组。
matplotlib 库的 imshow() 方法将绘图显示为图像。它将数组作为第一个参数,阵营作为第二个参数。
颜色条方法用于描述赋予值的颜色。
show 方法用于显示绘图。
用颜色绘制具有尺寸的二维数组
我们之前看到的所有上述例子都是无量纲的。在处理大型项目时,这可能看起来不太好。统一的尺寸使情节看起来美观且专业。
1
2
3
4
5
6
7
8
|
import numpy as np from matplotlib import pyplot as plt c = np.random.rand( 5 , 5 ) plt.rcParams[ "figure.figsize" ] = [ 6.4 , 4.8 ] plt.rcParams[ "figure.autolayout" ] = True img = plt.imshow(c, cmap = "magma" ) plt.colorbar(img) plt.show() |
第一行和第二行导入 numpy 和 matplotlib 库来创建和可视化数组。
创建一个名为 c 的变量来存储随机函数生成的二维数组。
matplotlib 库的方法rcParams
用于设置绘图的图形大小、宽度和高度。默认宽度为 6.4 英寸,高为 4.8 英寸。
同样的方法也可以将图形的调整设置为true。这意味着布局会根据图形大小和尺寸自动更新。
imshow 用于将绘图显示为图像。我们在这里使用的颜色图是岩浆。
岩浆是从深紫色到浅橙色的美丽颜色集合。
show() 方法用于显示绘图。
以下是来自 matplotlib 官方文档的一些顺序颜色图的图表,您可以将其用作上述示例中使用的颜色图的替代品。
结论
总而言之,我们已经了解了数组是什么以及如何借助 NumPy 自己的随机方法生成数组的元素。
我们已经了解了颜色图的定义以及颜色图如何在可视化数据(在本例中是二维数组的元素)方面发挥作用。
接下来,我们看到了使用随机生成的元素对 2D 数组进行颜色绘制的各种方法。
首先,我们看到了仅用两种颜色绘制的二值颜色图的用法。在本教程中,我们使用了黑色和白色。从输出中可以看出,黑色代表数组的最大值,白色代表数组的最小值。这两个值之间的任何元素都由灰色阴影表示。
接下来,我们看到了如何使用 pcolormesh 来实现颜色图。matplotlib 的 pcolormesh 使用几种颜色来绘制数据。这有助于我们更深入地了解数据模式。
以下方法使用 PuBuGn 颜色图,它代表紫-蓝-绿。它是一个连续的颜色图,从紫色的各种色调开始绘制,然后变为蓝色,最后变为绿色。
最后一种方法与上面的例子没有什么不同。但是,我们指定显示的图的尺寸。matplotlib的rcParams
用来定义绘图的尺寸。