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.
相关产品推荐
相关产品推荐

