如何调整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库,包含一组用于绘制二维图表的函数和方法。

颜色条

颜色条是水平条,沿着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和aspect参数。

  • 方法2 − 使用location参数和cax参数。

  • 方法3 − 使用cax参数。

默认情况下,颜色条位于左侧。让我们来看一个普通颜色条的示例。

示例

import matplotlib.pyplot as p
import numpy as n

# generate some data
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)

# create a horizontal subplot and plot the data
f, a = p.subplots()
i = a.imshow(Z, cmap='jet')

# add a colorbar and adjust the position
cbar = fig.colorbar(i, ax=a)

# display the plot
p.show()

输出

使用pad和aspect参数

pad参数允许我们更改颜色条与绘图的距离。aspect参数设置颜色条的宽度和高度。通过更改这些参数,我们可以更改颜色条的位置。

例如,我们可以使用以下代码来更改颜色条在水平子图中的位置,这里颜色条位置位于图表下方:

颜色条是表示图表中显示颜色的线条,在本例中,我们将看到如何使用pad参数和orientation参数来设置颜色条在图表下方的位置,其中orientation参数的值将为水平。

示例

import matplotlib.pyplot as p
import numpy as n

# generate some data
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)

# create a horizontal subplot and plot the data
f, a = p.subplots()
i = a.imshow(Z, cmap='jet')

# add a colorbar and adjust the position
cbar = fig.colorbar(i, ax=a, orientation='horizontal', pad=0.3, aspect=35)

# display the plot
p.show()

输出

在上面的程序中,我们使用ax.imshow()绘制数据并创建了一个水平子图。之后,我们使用f.colorbar()函数添加了一个颜色条,并使用pad和aspect参数调整其位置。

使用location参数

轴的位置由用户指定,颜色条通过“location”参数与当前显示的轴关联。在对列表中的多个轴着色时,location参数用于颜色条。

示例

import matplotlib.pyplot as p
import numpy as n

# generate some data
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)

# create a horizontal subplot and plot the data
f, a = p.subplots()
i = a.imshow(Z, cmap='jet')

# add a colorbar and adjust the position
cbar = fig.colorbar(i, ax = [a], location = 'left')

# display the plot
p.show()

输出

使用cax参数

它定义了将绘制颜色条的轴。

以下是将颜色条位置设置为顶部的程序。

示例

import matplotlib.pyplot as p

from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as n

# generate some data
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)
# create chart
fig, ax = p.subplots()
im = ax.imshow(Z)
ax.set_xlabel('x-axis label')
ax.set_title('Colorbar above chart')

# add color bar below chart
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)来移动图表或子图中的颜色条,具体取决于我们的需求。

更新于:2023年6月1日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告