使用contourf创建一个等高线集合
时间: 2024-02-15 14:02:04 浏览: 96
要使用 `contourf` 函数创建等高线集合,您需要提供 X 和 Y 值的网格,以及对应于每个网格点的 Z 值,其中 Z 值是用于绘制等高线的高度值。以下是一个简单的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成 X 和 Y 值的网格
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
# 计算每个网格点的高度值 Z
Z = np.sin(np.sqrt(X**2 + Y**2))
# 绘制等高线集合
plt.contourf(X, Y, Z, cmap='viridis')
# 显示结果
plt.colorbar()
plt.show()
```
在这个例子中,我们首先使用 `np.linspace` 函数生成 X 和 Y 值的网格,然后使用 `np.meshgrid` 函数将它们组合成一个网格。接下来,我们计算每个网格点的高度值 Z,这里使用了一个简单的函数 `np.sin(np.sqrt(X**2 + Y**2))`。最后,我们使用 `contourf` 函数绘制等高线集合,并使用 `cmap='viridis'` 参数指定颜色映射。 `plt.colorbar()` 函数用于创建 colorbar,以便我们可以查看颜色映射。
相关问题
密度图与等高线图代码
密度图(Density Plot)和等高线图(Contour Plot)都是数据可视化中常用的技术,它们可以有效地展示数值型数据的分布情况。
**密度图**通常是基于二维数据集,它通过颜色的深浅来表示数据点的密集程度。Python中的`seaborn`库提供了方便的函数绘制密度图,如`sns.kdeplot()`。例如:
```python
import seaborn as sns
import numpy as np
# 创建随机数据
data = np.random.randn(1000, 2)
# 绘制密度图
sns.jointplot(data[:, 0], data[:, 1], kind='kde', color='g')
```
**等高线图**则显示在同一平面上的数据值相等的点的集合,通常用于描绘连续变量之间的关系。在Matplotlib中,可以使用`contourf()`函数创建等高线图:
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
plt.contourf(X, Y, Z, levels=20, cmap='viridis')
plt.colorbar()
plt.show()
```
阅读全文