Matplotlib Contour Colorbar

Matplotlib Contour Colorbar

参考:contour colorbar

在数据可视化中,经常需要展示和比较不同区域的数值分布。使用contour plot可以很直观地展示不同区域的数值分布情况,而colorbar则可以帮助我们更清晰地理解不同颜色对应的数值范围。本文将详细介绍如何在contour plot中添加colorbar,并优化colorbar的显示效果。

1. 基本设置

首先,我们需要导入相关的库,并生成一些数据用于绘制contour plot。

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

然后,我们可以使用plt.contourf()方法创建contour plot并添加colorbar。

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
plt.colorbar(contour)
plt.show()

Output:

Matplotlib Contour Colorbar

2. 调整Colorbar的外观

有时候,我们需要调整colorbar的外观,比如修改标签字体大小、标签颜色、标签格式等。以下是如何实现这些功能的示例代码。

2.1 修改标签字体大小

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour)
cbar.ax.tick_params(labelsize=12)
plt.show()

Output:

Matplotlib Contour Colorbar

2.2 修改标签颜色

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour)
cbar.ax.yaxis.set_tick_params(color='red')
plt.show()

Output:

Matplotlib Contour Colorbar

2.3 修改标签格式

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour, format='%.2f')
plt.show()

Output:

Matplotlib Contour Colorbar

3. 调整Colorbar的位置

有时候,我们需要将colorbar放置在不同的位置,比如水平放置在图像底部或垂直放置在图像右侧。以下是如何实现这些功能的示例代码。

3.1 将Colorbar水平放置在图像底部

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour, orientation='horizontal')
plt.show()

Output:

Matplotlib Contour Colorbar

3.2 将Colorbar垂直放置在图像右侧

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour, orientation='vertical')
plt.show()

Output:

Matplotlib Contour Colorbar

4. 自定义Colorbar的色谱

除了默认的色谱外,我们还可以自定义colorbar的色谱,使得colorbar更符合我们的需求。以下是如何实现自定义色谱的示例代码。

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20, cmap='coolwarm')
plt.colorbar(contour)
plt.show()

Output:

Matplotlib Contour Colorbar

5. 自定义Colorbar的范围

有时候,我们需要手动设置colorbar的范围,比如将colorbar的范围限制在特定数值范围内。以下是如何手动设置colorbar范围的示例代码。

import numpy as np
import matplotlib.pyplot as plt

# 生成二维数组数据
x = np.linspace(-2*np.pi, 2*np.pi, 100)
y = np.linspace(-2*np.pi, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

plt.figure()
contour = plt.contourf(X, Y, Z, levels=20)
cbar = plt.colorbar(contour)
cbar.set_clim(-1, 1)
plt.show()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程