You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制以f(c)、g(c)为坐标轴、c值为等高线的等高线图

实现方案

核心思路是先完成参数采样、坐标映射两步,再用matplotlib的等高线绘制接口输出即可,以下是可直接运行的示例:

  • 依赖库:numpy、matplotlib
  • 你可以直接替换示例中的f(c)、g(c)函数,以及等高线对应的c取值规则适配你的需求

完整示例代码

import numpy as np
import matplotlib.pyplot as plt

# 自定义坐标轴x对应的f(c)函数,示例中c为二维参数[c1, c2],可根据你的需求调整c的维度
def f(c):
    return c[0] + 0.5 * np.sin(c[1])

# 自定义坐标轴y对应的g(c)函数
def g(c):
    return c[1] + 0.5 * np.cos(c[0])

# 1. 生成参数c的采样网格,示例中c的两个维度取值范围均为-2π到2π
c1_sample = np.linspace(-2 * np.pi, 2 * np.pi, 100)
c2_sample = np.linspace(-2 * np.pi, 2 * np.pi, 100)
c1, c2 = np.meshgrid(c1_sample, c2_sample)
c = np.array([c1, c2])

# 2. 计算两个坐标轴的映射值
x = f(c)
y = g(c)

# 3. 绘制等高线,示例中等高线取值对应c的第一个维度c1,可替换为你需要的c取值规则
contour = plt.contour(x, y, c1, levels=20, cmap='viridis')
# 添加等高线数值标签
plt.clabel(contour, inline=True, fontsize=8)
# 添加颜色条标注c的取值
plt.colorbar(contour, label='c value')

plt.xlabel('f(c)')
plt.ylabel('g(c)')
plt.show()

特殊场景适配

  • 如果你使用的是非规则网格采样的c值,把所有变量展平后用tricontour绘制即可:
x_flat = x.flatten()
y_flat = y.flatten()
c_flat = c1.flatten()
contour = plt.tricontour(x_flat, y_flat, c_flat, levels=20, cmap='viridis')
  • 如果你的c是一维参数,本质是参数化曲线,直接用plt.plot(x, y)绘制即可,需要标注c取值可以用散点图上色实现。

内容的提问来源于stack exchange,提问作者sycramore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:06:03