详解matplotlib中的plt.contourf

一、plt.contourf简介

plt.contourf是matplotlib中一个非常重要的函数,用于绘制等高线图,其中f表示filled,绘制的颜色由函数值所表示的“高度”决定,通常用于表示2D函数的等值线分布。

二、plt.contourf的参数

plt.contourf函数具有多个参数,其中x,y分别表示x轴和y轴上的坐标数组;Z表示在这些坐标上对应的函数值;levels代表要绘制的等值线的高度;cmap是颜色选择;alpha是透明度;linewidths表示等值线的宽度等等。实际上,plt.contourf函数可以绘制出更加高级的等高线图,但本文着重介绍最基础的内容。

# 简单使用示例
plt.contourf(x, y, z) # 绘制等高线图,只传入x、y和z三个参数
plt.colorbar() # 添加颜色条

本例中的x、y、z数组均为二维数组,其形状分别为N行M列。使用时需要保证x和y的形状和z相同。

三、plt.contourf的应用场景

1. 表示2D函数的等值线分布

对于一个二维函数f(x, y),我们可以通过plt.contourf函数将其等值线画出来,其中x和y是变量,z=f(x,y)。

import numpy as np
import matplotlib.pyplot as plt

# 定义函数
def f(x, y):
    return np.sin(np.sqrt(x ** 2 + y ** 2))

# 生成网格数据
x = np.linspace(-10, 10, 500) # x坐标
y = np.linspace(-10, 10, 500) # y坐标
X, Y = np.meshgrid(x, y) # 生成二维网格数据

z = f(X, Y) # 计算得到z值

# 绘制图像
plt.contourf(X, Y, z, cmap='cool') # 绘制等值面
plt.colorbar() # 添加颜色条
plt.show()

运行结果如下图所示,等值线的颜色随着函数值的变化而变换,越靠近最高点颜色越亮。

2. 地图绘制

在地理信息学中,人们常常需要绘制各种特征地图,比如地形高度图、气象预报图等。利用plt.contourf函数,我们可以非常轻松地实现这一目标。

import numpy as np
import matplotlib.pyplot as plt

# 生成网格数据
x = np.linspace(0, 10, 50)
y = np.linspace(0, 10, 50)
X, Y = np.meshgrid(x, y)

# 定义一个简单的高度分布函数,这里是正弦函数
z = 2 * np.sin(X) + 3 * np.sin(Y)

# 绘制等高线图
plt.contourf(X, Y, z, cmap='cool')
plt.colorbar()

# 添加地图信息
plt.title('等高线地图')
plt.xlabel('经度')
plt.ylabel('纬度')

plt.grid(True)

plt.show()

运行结果如下图所示,色彩分布从深红到浅绿,更好地显示了地势高低差异。使用等高线还可以更加准确地描述地势,从而更好地预测地图上海拔高度的走势。

3. 三维数据的可视化

plt.contourf函数还可以绘制三维数据的可视化效果。在这里,我们可以设置z值作为颜色来表示数据的变化医,并用不同的颜色填充不同的元素。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成网格数据
x = np.linspace(-10, 10, 50)
y = np.linspace(-10, 10, 50)
X, Y = np.meshgrid(x, y)

# 定义一个三维数据(X, Y, Z),这里使用正弦函数
Z = np.sin(np.sqrt(X ** 2 + Y ** 2))

# 绘制三维图像
fig = plt.figure()
ax = fig.gca(projection='3d') # 创建3D坐标系

surf = ax.plot_surface(X, Y, Z, cmap='cool') # 绘制表面
plt.colorbar(surf)

plt.show()

运行结果如下图所示,颜色鲜明,营造出充满科技感的立体画面,使数据的呈现更加形象生动了。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-25 18:39
下一篇 2024-12-25 18:39

相关推荐

  • Python最强大的制图库——Matplotlib

    Matplotlib是Python中最强大的数据可视化工具之一,它提供了海量的制图、绘图、绘制动画的功能,通过它可以轻松地展示数据的分布、比较和趋势。下面将从多个方面对Matplo…

    编程 2025-04-29
  • Python三大:NumPy、Pandas、matplotlib

    本文将详细介绍三大Python数据处理及可视化库——NumPy、Pandas以及matplotlib,为读者提供从基础使用到应用场景的全面掌握。 一、NumPy NumPy是Pyt…

    编程 2025-04-27
  • Python画图:Matplotlib的使用

    Matplotlib是Python中最常用的画图库之一。它可以轻松地创建各种类型的图表,包括直方图、散点图、线图、饼图等等。本文将从以下几个方面对Matplotlib的使用进行详细…

    编程 2025-04-27
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25

发表回复

登录后才能评论