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

gnuplot绘制JFET特性曲线时如何标注指定点并添加坐标轴参考虚线

gnuplot绘制JFET特性曲线点标注问题

我正在使用gnuplot绘制曲线,需要在曲线上标注两个指定点。
当前绘制的曲线效果如下:
曲线效果图
我期望实现的标注效果如下(该效果图为我使用GIMP手动绘制点和到坐标轴的连线得到):我需要标注的两个点分别为x轴Vgs=-0.5对应的点,以及y轴Id=2.5对应的点,同时希望为这两个点添加延伸到对应坐标轴的虚线,辅助数值读取。
我曾查找资料尝试使用set object circle命令加坐标绘制圆点标记,但运行时报错提示存在多余参数,查阅官方手册也未找到对应解决方案,不清楚该搜索什么关键词。
我想要实现的预期效果如下:
预期效果图
我当前绘制曲线使用的命令如下:

set xlabel "Vgs (Volts)"
set ylabel "Id (mA)"
set grid
Idss=5
Vgs_off=-1
Id(Vgs) = Idss * (1 - (Vgs / Vgs_off) ) ** 2
plot [Vgs=Vgs_off:0][0:Idss + 1] Id(Vgs)

该曲线为仙童J112型JFET的特性曲线。

编辑说明:已将分母位置的-1替换为Vgs_off避免混淆,该参数取自JFET的数据手册,本次案例中取值恰好为-1。


优化后效果与完整代码

调整代码后得到的完善版JFET特性曲线效果如下:
优化后效果图
优化后的完整绘图命令如下:

# 取自数据手册的JFET参数
Vgs_off=-1
Idss=5

# JFET特性曲线公式
Id(Vgs) = Idss * (1 - (Vgs / Vgs_off) ) ** 2

# 图表属性设置
set title "I_D vs V_{GS}"
set xlabel "V_{GS} (Volts)"
set ylabel "I_D (mA)"
set grid
set key off
set monochrome

# 绘制特性曲线
plot [Vgs=Vgs_off:0][0:Idss] Id(Vgs)

# 绘制需要标注的点
set object circle center 0.5 * Vgs_off, Id(0.5 * Vgs_off) radius char 0.33 fillstyle solid fillcolor rgb 'black'
set object circle center 0.293 * Vgs_off, Id(0.293 * Vgs_off) radius char 0.33 fillstyle solid fillcolor rgb 'black'

# 为标注点添加延伸到坐标轴的虚线
set arrow from first 0.5 * Vgs_off, graph 0 to first 0.5 * Vgs_off, graph 1 dashtype "-" nohead
set arrow from graph 0, first Id(0.5 * Vgs_off) to graph 1, first Id(0.5 * Vgs_off) dashtype "-" nohead
set arrow from 0.293 * Vgs_off, graph 0 to 0.293 * Vgs_off, graph 1 dashtype "_" nohead
set arrow from graph 0, first Id(0.293 * Vgs_off) to graph 1, first Id(0.293 * Vgs_off) dashtype "_" nohead

# 添加线条标注
set label "I_{DSS}" at graph 1.01, graph 1
set label "I_{DSS} / 2" at graph 1.01, graph 0.50
set label "I_{DSS} / 4" at graph 1.01, graph 0.25
set rmargin at screen 0.9

# 更新图表
replot

内容的提问来源于stack exchange,提问作者Dave H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:09:03