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

如何在gnuplot绘图任意位置添加圆点等额外图形元素?

通用方案:在gnuplot任意位置添加不受字体限制的简单图形

如果你想避开字体规则,在gnuplot的标题区、绘图区等任意位置添加圆点、方块这类简单图形,以下几种通用方法可以解决问题:

方法1:直接用plot命令绘制图形点

利用gnuplot的绘图功能,通过指定坐标点和点类型,完全脱离字体约束。适合需要快速在指定位置添加图形的场景。

示例代码:

reset session
set multiplot layout 1,2

# 第一个子图:在标题区域画实心圆点
set title " "  # 留空标题避免占位
# 使用屏幕坐标定位(0,0是左下角,1,1是右上角),pt7是实心圆点,ps控制大小
plot sin(x), \
     '-' with points pt 7 ps 2 lc rgb "black" notitle
0.85 0.95  # 屏幕坐标位置
e

# 第二个子图:在标题区域画实心方块
set title " "
plot sin(x**2), \
     '-' with points pt 5 ps 2 lc rgb "black" notitle  # pt5是实心方块
0.85 0.95
e

unset multiplot

常用点类型参考:

  • pt 7:实心圆点
  • pt 5:实心方块
  • pt 6:空心圆点
  • pt 4:空心方块
    坐标支持screen()(屏幕比例)、graph()(绘图区比例)或实际数据坐标,灵活调整位置。

方法2:用set object创建独立图形元素

set object可以生成圆、矩形等独立图形,能精准定位到任何区域,完全不受文本规则影响,适合需要自定义大小和样式的场景。

示例代码:

reset session
set multiplot layout 1,2

# 第一个子图:标题区添加实心圆点
set title "正弦曲线"
# 圆形对象:屏幕坐标定位,size控制半径,fill solid填充实心
set object circle at screen 0.78,0.95 size screen 0.02 fill solid lc rgb "black" front
plot sin(x)

# 第二个子图:标题区添加实心方块
set title "平方正弦曲线"
# 矩形对象:通过from/to指定对角坐标,fill solid填充实心
set object rectangle from screen 0.78,0.93 to screen 0.82,0.97 fill solid lc rgb "black" front
plot sin(x**2)

unset multiplot
unset object
  • front参数确保图形显示在标题文字上方(如果有标题文本)
  • 可通过lc设置颜色,size或坐标范围调整图形大小

方法3:在文本中嵌入图形转义符

如果需要将图形和文本结合排版,gnuplot的{* ... }转义语法可以直接绘制图形,不需要依赖字体中的特殊字符,兼容性更强。

示例代码:

reset session
set multiplot layout 1,2

# 标题中嵌入圆点图形
set title "{*circle 0.8} 正弦曲线"  # circle后数字是相对于文本的大小比例
plot sin(x)

# 标题中嵌入方块图形
set title "{*square 0.8} 平方正弦曲线"
plot sin(x**2)

unset multiplot

内容的提问来源于stack exchange,提问作者Bryan-StackExchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:46:03