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

如何在gnuplot中绘制线不穿过空心方形、三角形的线点图

解决方案:固定大小空心标记的线点图(线条不穿过标记)

核心思路是先画底层线条,再在上方叠加固定大小的空心标记,这样标记会完全覆盖线条穿过的部分,解决空心标记的视觉问题。关键是用screen单位定义标记大小,确保它不随坐标轴范围(包括对数轴)变化。

1. 空心方形的正确实现

放弃boxxy(它用数据坐标定义大小,会随轴缩放),改用with squares配合set style square设置固定的屏幕单位大小:

# 设置方形标记的大小(screen单位,0到1对应整个画布)
set style square screen 0.02  # 大小可根据需求调整
plot 'data1.dat' u 1:2 w l lw 4 lc "blue" notitle, \
     'data1.dat' u 1:2 with squares fillcolor "cyan" fs solid 0.2 border lc "blue" notitle

2. 空心三角形的实现

用with triangles,同样用screen单位固定大小:

set style triangle screen 0.03  # 调整大小适配需求
plot 'data1.dat' u 1:2 w l lw 4 lc "green" notitle, \
     'data1.dat' u 1:2 with triangles fillcolor "yellow" fs solid 0.2 border lc "green" notitle

3. 通用规则(适用于其他标记)

对于圆形、菱形等其他标记,都可以用类似方式:

  • 圆形:把你之前的命令改成set style circle radius screen 0.01(用screen单位替代数据单位,确保大小不随轴变化)
  • 菱形:set style diamond screen 0.02 + with diamonds组合使用

对数轴适配说明

只要用screen单位定义标记大小,不管x/y轴是线性还是对数,标记的物理大小都会保持一致,彻底解决你遇到的缩放问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:43:16