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

如何用gnuplot绘制带端点空心圆的Heaviside函数及相关图像?

如何用gnuplot绘制带空心圆标记的Heaviside函数及相关图像?

我来帮你搞定这个gnuplot绘图问题!你已经能画出基础的阶跃线,但要加上空心圆标记的核心思路是:分段绘制函数(避开阶跃点)+ 手动添加标记点。下面分步骤给你详细说明:

一、基础带空心圆的Heaviside函数(第一张图)

Heaviside函数的核心是x=0处的阶跃,我们需要在(0,0)和(0,1)位置添加空心圆,具体代码如下:

# 设置输出终端和文件
set terminal pngcairo enhanced font 'Arial,12'
set output 'heaviside_basic.png'

# 定义样式:pt6是gnuplot内置的空心圆符号
set style line 1 lc rgb '#0060ad' lw 2  # 蓝色粗线条
set style line 2 lc rgb '#0060ad' pt 6 ps 1.5  # 同色空心圆,大小1.5

# 坐标轴和范围设置
set xlabel 'x'
set ylabel 'H(x)'
set xrange [-3:3]  # 调整x范围让图像更美观
set yrange [-0.1:1.1]  # 留出上下边距避免标记被截断
set grid minor  # 显示细网格提升可读性

# 分段绘制函数 + 添加空心圆标记
plot [-3:-0.001] 0 ls 1 title 'H(x)', \  # x从-3到接近0,y=0
     [0.001:3] 1 ls 1 title '', \        # x从接近0到3,y=1
     '-' with points ls 2 title '', \    # 绘制(0,0)的空心圆
     '-' with points ls 2 title ''       # 绘制(0,1)的空心圆
0 0  # 输入第一个标记点坐标
e    # 结束当前数据块
0 1  # 输入第二个标记点坐标
e    # 结束数据块

关键说明:

  • 用[-3:-0.001]和[0.001:3]限定绘图范围,避开x=0,防止两段线被自动连接成斜线
  • pt6是gnuplot内置的空心圆标记,替换成pt7/pt8可得到空心正方形/菱形

二、延迟的Heaviside函数(第二张图)

如果要绘制在x=a处阶跃的延迟版H(x - a),只需调整分段范围和标记点坐标即可,比如a=1的例子:

set terminal pngcairo enhanced font 'Arial,12'
set output 'heaviside_delayed.png'

set style line 1 lc rgb '#0060ad' lw 2
set style line 2 lc rgb '#0060ad' pt 6 ps 1.5

set xlabel 'x'
set ylabel 'H(x - 1)'
set xrange [-2:4]
set yrange [-0.1:1.1]
set grid minor

plot [-2:0.999] 0 ls 1 title 'H(x-1)', \
     [1.001:4] 1 ls 1 title '', \
     '-' with points ls 2 title '', \
     '-' with points ls 2 title ''
1 0  # 延迟后的左标记点
e
1 1  # 延迟后的右标记点
e

三、反向Heaviside函数(第三张图)

另一种常见变形是反向阶跃1 - H(x)(x<0时y=1,x>0时y=0),同样添加空心圆的代码如下:

set terminal pngcairo enhanced font 'Arial,12'
set output 'heaviside_reversed.png'

set style line 1 lc rgb '#0060ad' lw 2
set style line 2 lc rgb '#0060ad' pt 6 ps 1.5

set xlabel 'x'
set ylabel '1 - H(x)'
set xrange [-3:3]
set yrange [-0.1:1.1]
set grid minor

plot [-3:-0.001] 1 ls 1 title '1 - H(x)', \
     [0.001:3] 0 ls 1 title '', \
     '-' with points ls 2 title '', \
     '-' with points ls 2 title ''
0 1  # 左标记点
e
0 0  # 右标记点
e

额外小技巧

  • 用set key off可以关闭图例,让图像更简洁
  • 如果需要矢量图输出,把set terminal pngcairo改成set terminal pdfcairo或set terminal svg
  • 调整ps参数可以改变空心圆的大小,比如ps 2会让标记更大

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:23:28