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

Gnuplot绘制3D数据曲线及其平面投影技术问询

使用Gnuplot绘制3D曲线及平面投影的解决方案

一、3D曲线与平面投影实现

你的数据集第一列为频率(x轴)、第二列为实部(y轴)、第三列为虚部(z轴),要绘制3D曲线并投影到xy、yz、xz三个平面,核心是分别绘制投影曲线——投影本质是固定某一轴的坐标为对应平面的基准值(比如xy平面投影固定z=0,yz平面投影固定x为数据最小值,xz平面投影固定y为数据最小值)。

以下是完整gnuplot脚本,假设你的数据保存为data.txt:

# 设置绘图样式与视角
set terminal wxt enhanced title "3D Curve with Projections"
set view 60,30
set grid
set key outside

# 坐标轴标签
set xlabel "Frequency"
set ylabel "Real Part"
set zlabel "Imaginary Part"

# 绘制3D主曲线+三个平面投影
splot "data.txt" using 1:2:3 with lines lw 2 lc rgb "#00aa00" title "3D Curve", \
      "data.txt" using 1:2:(0) with lines lw 1 lc rgb "#0000ff" title "XY Projection", \
      "data.txt" using (GPVAL_X_MIN):2:3 with lines lw 1 lc rgb "#ff0000" title "YZ Projection", \
      "data.txt" using 1:(GPVAL_Y_MIN):3 with lines lw 1 lc rgb "#ff8800" title "XZ Projection"
  • 说明:GPVAL_X_MIN和GPVAL_Y_MIN是gnuplot自动计算的坐标轴最小值,也可以手动指定固定值(比如x=1e-3)来对齐到特定边界。

二、曲线下方阴影的实现

你提到的绿色曲线下方“阴影”,可以通过绘制填充多边形带来模拟:将3D曲线上的每个点与XY平面的对应点连接,形成填充区域。修改脚本添加阴影效果:

set style fill solid 0.25 border 0  # 设置填充透明度,无边框

splot "data.txt" using 1:2:3 with lines lw 2 lc rgb "#00aa00" title "3D Curve", \
      # 阴影:填充3D曲线到XY平面的区域
      "data.txt" using 1:2:3 with filledcurves y1=0 lc rgb "#00aa00" title "Curve Shadow", \
      # 保留投影曲线
      "data.txt" using 1:2:(0) with lines lw 1 lc rgb "#0000ff" title "XY Projection", \
      "data.txt" using (GPVAL_X_MIN):2:3 with lines lw 1 lc rgb "#ff0000" title "YZ Projection", \
      "data.txt" using 1:(GPVAL_Y_MIN):3 with lines lw 1 lc rgb "#ff8800" title "XZ Projection"
  • 说明:调整solid后的数值可以改变阴影透明度,数值越小越透明。

三、关于数据文件使用

Gnuplot完全支持直接读取本地txt文件,无需粘贴大量数据:

  1. 将你的数据保存为纯文本文件(比如data.txt),确保列之间用空格或制表符分隔;
  2. 在脚本中用"data.txt"引用该文件即可,gnuplot会自动读取列数据。
    如果使用在线gnuplot工具,多数平台支持上传本地txt文件,上传后直接用文件名引用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:30:13