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

如何在热力图样式的散点图上叠加特定值的等高线?

在Heatmap样式散点图上叠加特定值等高线的实现方法

核心思路

使用Julia的Plots.jl包中contour!()函数,在已绘制的图上叠加等高线,并通过levels参数指定需要显示的特定数值。根据数据类型(网格/散点)分两种场景处理:


场景1:数据为网格格式

如果x、y是网格坐标向量,matrix是对应网格点的数值矩阵,直接叠加等高线即可:

using Plots

# 替换为你的实际网格数据
x = 1:10
y = 1:10
matrix = rand(10, 10)

# 绘制heatmap样式的散点图
plot = scatter(x, y, matrix, st=:heatmap, xlabel="x vals ()", ylabel="y vals ()", title="blah blah")

# 叠加特定值的等高线,示例指定0.3和0.7两个值
contour!(x, y, matrix, levels=[0.3, 0.7], color=:black, linewidth=2)

display(plot)

场景2:数据为散点格式

如果x、y是随机散点坐标,需先将数值插值到网格上,再绘制等高线:

using Plots, Interpolations

# 替换为你的实际散点数据
x = rand(100)
y = rand(100)
matrix = rand(100)

# 生成插值用的网格
xi = range(minimum(x), maximum(x), length=50)
yi = range(minimum(y), maximum(y), length=50)

# 对散点数值进行网格插值
itp = interpolate((x, y), matrix, Gridded(Linear()))
zi = itp(xi, yi)

# 绘制heatmap样式的散点图
plot = scatter(x, y, matrix, st=:heatmap, xlabel="x vals ()", ylabel="y vals ()", title="blah blah")

# 叠加特定值的等高线
contour!(xi, yi, zi, levels=[0.3, 0.7], color=:red, linewidth=2)

display(plot)

关键参数说明

  • contour!():原地修改已有绘图对象实现图层叠加,若需新建图使用contour()。
  • levels:接受数值数组,精确指定需要显示等高线的目标值。
  • color/linewidth:调整等高线的颜色和线条粗细,优化可视化效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:45:16