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

Gnuplot中基于数组dt绘制数组e的绘图问题求助

Gnuplot数组绘图解决方案

直接执行plot dt, e只会输出数组内容,因为Gnuplot默认不会将两个数组识别为x/y坐标序列,需通过索引遍历的方式指定坐标点:

方法1:for循环遍历数组索引

假设你已完成数组赋值(如dt[1]=5e-11; dt[2]=1e-10; dt[3]=2.5e-10),执行以下命令即可绘图:

plot for [i=1:|dt|] dt[i], e[i] with linespoints pt 7 title 'e vs dt'
  • |dt|自动获取数组长度,无需手动指定元素个数
  • with linespoints同时绘制点和连线,可根据需求换成with points(仅点)或with lines(仅线)

方法2:虚拟数据源映射

用虚拟数据源'+'配合数组索引映射,写法更简洁:

plot '+' using (dt[$0+1]):(e[$0+1]) every ::0::(|dt|-1) with linespoints title 'e vs dt'
  • $0是虚拟行号(从0开始),$0+1对应Gnuplot数组的1-based索引
  • every ::0::(|dt|-1)限制只生成与数组长度匹配的行数

执行上述任意命令后,就能得到以dt为横轴、e为纵轴的图形,而非仅输出数组数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:16:31