如何调整 Matplotlib 颜色条的位置?
调整 Matplotlib 颜色条的位置对于生成精确且易于理解的图形和绘图至关重要。本文介绍了一些调整 Matplotlib 颜色条位置的常用方法。颜色条对于理解子图或绘图的重要性至关重要。有时,颜色条可能会与绘图的其他元素重叠,从而难以准确解释数据。我们将讨论两种修改 Matplotlib 颜色条位置的方法,其中包括使用 pad、aspect 和 reduce 参数。
Matplotlib
Matplotlib 是一个主要用于为 Python 编程语言和 NumPy(其数值数学扩展)绘制图形和绘图的库。Tkinter、wxPython、Qt 和 GTK GUI 工具包可能包括利用其面向对象 API 的图表。 matplotlib.pyplot 是一组命令式方法,允许 matplotlib 以类似于 MATLAB 的方式运行。每个 pyplot 函数都会以某种方式改变图形,无论是通过添加绘图区域、绘制线条、添加标签等。
Pyplot 是 Python matplotlib 实用程序的一个子模块。它是一个 Python 库,包含用于绘制 2D 图形的函数和方法集合。
颜色条
颜色条是沿 Matplotlib 图表侧面延伸的水平条,用作图表中显示的颜色的图例。matplotlib 的 pyplot 模块中的 colorbar() 函数为绘图添加了颜色比例条。Matplotlib 提供了广泛的颜色条自定义选项。颜色条是 plt.Axes 的一个实例,因此所有轴和标记格式化技术都适用。我们可以通过设置 extend 属性来缩小颜色限制,并在颜色条的顶部和底部用三角箭头指定超出范围的值。
语法
matplotlib.pyplot.colorbar(mappable=None, cax=None, ax=None)
解释
mappable − 它将默认值设置为当前图像,但默认情况下其值为 None。
cax − 它定义将在其中绘制颜色条的轴。
ax − 从父轴中获取,为新的颜色条轴腾出空间。如果给出了轴列表,则它们会缩小以给颜色条轴腾出空间。
调整 Matplotlib 颜色条的位置
调整 matplotlib 颜色条的位置主要有三种方法,我们将看到所有四个位置,即左、右、下、上,它们是 -
方法 1 - 使用 pad 和 aspects 参数。
方法 2 - 使用 location 参数和 cax 参数。
方法 3 - 使用 cax 参数。
默认情况下,颜色条位于左侧。让我们看一个普通颜色条的示例。
示例
import matplotlib.pyplot as p import numpy as n # 生成一些数据 x = n.linspace(0, 20, 100) y = n.linspace(0, 20, 100) X, Y = n.meshgrid(x, y) Z = n.sin(X) * n.cos(Y) # 创建水平子图并绘制数据 f, a = p.subplots() i = a.imshow(Z, cmap='jet') # 添加颜色条并调整位置 cbar = fig.colorbar(i, ax=a) # 显示绘图 p.show()
输出
使用 pad 和aspect 参数
pad 参数允许我们更改颜色条与图之间的距离。aspect 参数根据颜色条的宽度和高度设置颜色条的大小。通过更改这些参数,我们可以更改颜色条的位置。
例如,我们可以使用以下代码更改水平子图中颜色条的位置,此处颜色条位置位于图形下方 -
颜色条是代表具有图形中显示的颜色的线的线,因此在此示例中,我们将看到如何借助 pad 参数和 orientation 参数设置颜色条在图形下方的位置,其中参数 orientation 的值将是水平的。
示例
import matplotlib.pyplot as p import numpy as n # 生成一些数据 x = n.linspace(0, 20, 100) y = n.linspace(0, 20, 100) X, Y = n.meshgrid(x, y) Z = n.sin(X) * n.cos(Y) # 创建水平子图并绘制数据 f, a = p.subplots() i = a.imshow(Z, cmap='jet') # 添加颜色条并调整位置 cbar = fig.colorbar(i, ax=a, orientation='horizontal', pad=0.3, aspects=35) # 显示绘图 p.show()
输出
在上面的程序中,我们使用 ax.imshow() 绘制了数据并创建了水平子图。之后,我们使用函数 f.colorbar() 添加颜色条,并使用 pad 和 aspects 参数调整其位置。
使用位置参数
轴的位置由用户指定,颜色条通过"位置"参数与当前显示的轴相关联。当为列表中的多个轴着色时,位置参数用于颜色条。
示例
import matplotlib.pyplot as p import numpy as n # 生成一些数据 x = n.linspace(0, 20, 100) y = n.linspace(0, 20, 100) X, Y = n.meshgrid(x, y) Z = n.sin(X) * n.cos(Y) # 创建水平子图并绘制数据 f, a = p.subplots() i = a.imshow(Z, cmap='jet') # 添加颜色条并调整位置 cbar = fig.colorbar(i, ax = [a], location = 'left') # 显示绘图 p.show()
输出
使用 cax 参数
它定义了将要绘制颜色条的轴。
下面是将颜色条的位置设置为顶部的程序。
示例
import matplotlib.pyplot as p from mpl_toolkits.axes_grid1 import make_axes_locatable import numpy as n # 生成一些数据 x = n.linspace(0, 20, 100) y = n.linspace(0, 20, 100) X, Y = n.meshgrid(x, y) Z = n.sin(X) * n.cos(Y) # 创建图表 fig, ax = p.subplots() im = ax.imshow(Z) ax.set_xlabel('x 轴标签') ax.set_title('图表上方的颜色条') # 在图表下方添加颜色条 divider = make_axes_locatable(ax) cax = divider.new_vertical(size = '5%', pad = 0.5) fig.add_axes(cax) fig.colorbar(im, cax = cax, orientation = 'horizontal') plt.show()
输出
结论
总之,调整 Matplotlib 颜色条是制作清晰准确的图表的关键部分。我们已经了解到,我们可以根据需要使用不同的参数(例如 pad、location 和 cax)来移动图或子图中的颜色条。