如何调整 Matplotlib 颜色条的位置?

matplotlibpythondata visualization

调整 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='horizo​​ntal', 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 = 'horizo​​ntal')

plt.show()

输出

结论

总之,调整 Matplotlib 颜色条是制作清晰准确的图表的关键部分。我们已经了解到,我们可以根据需要使用不同的参数(例如 pad、location 和 cax)来移动图或子图中的颜色条。


相关文章