gnuplot:为什么线宽 0 的宽度不为零?
gnuplot: why is linewidth 0 not zero in width?
lw 0
没有零线宽,即不可见的原因是什么?
我在 gnuplot 手册中找到的内容:
The line width and point size are multipliers for the current
terminal's default width ...
好的,如果 lw 0
是乘数,那么生成的线宽应该为零,与终端的默认线宽无关。
询问的原因是最终有可能使用 with linespoints
并以编程方式在 with lines
和 with points
之间的循环内切换。
代码:
### linewidth 0 isn't zero
reset session
set key out
set yrange[-0.9:10.9]
set ytics 1
plot for [i=0:10] i with lines lw i title sprintf("linewidth %g",i)
### end of code
结果:
顺便问一下,y 轴上的人工制品是什么,例如在 ytics 3,4,6,7,9,10(wxt 终端)?
我不确定官方对 gnuplot 的具体解释是什么,但根据我的经验,大多数图形包/工具/库等都对线宽为零使用特殊约定。
根据这个约定,线宽为零并不意味着不可见;它只是意味着 "the thinnest line possible"。这意味着可以在设备上显示的最细线,无论缩放、转换、逻辑到物理映射等如何。
因此,在显示器上,它将是一个像素宽的线。
在打印机上,这将是打印机能够打印的最细线。所以,如果打印机有足够高的分辨率,那么这条线实际上可能是看不见的,尽管放大镜应该仍然能够显示它的存在。
请注意,"regardless of zoom, etc." 意味着即使您设置了一些缩放比例,使 10 点线看起来像 100 像素一样粗,零宽度线仍然恰好是一个像素粗。
Mike Nakis 是正确的,至少对于一些 gnuplot 输出终端,包括 PostScript,gnuplot 要求一条宽度为 0 的线,并且相关语言或库将其解释为“1 像素”或 "thinnest possible line" .
同样"pointtype 0"并不是真正缺失,它产生了一个像素点。
但是,您可以使用线型 "nodraw" 完全禁用线条绘制。
这给出了一对互补的命令
plot sin(x) with linespoints lt nodraw pt 7 # only the points are visible
plot sin(x) with linespoints lt 1 pt 0 # only the lines are visible
在某些情况下,了解 lt nodraw
的等效数字可能会有所帮助 lt -2
。
lw 0
没有零线宽,即不可见的原因是什么?
我在 gnuplot 手册中找到的内容:
The line width and point size are multipliers for the current terminal's default width ...
好的,如果 lw 0
是乘数,那么生成的线宽应该为零,与终端的默认线宽无关。
询问的原因是最终有可能使用 with linespoints
并以编程方式在 with lines
和 with points
之间的循环内切换。
代码:
### linewidth 0 isn't zero
reset session
set key out
set yrange[-0.9:10.9]
set ytics 1
plot for [i=0:10] i with lines lw i title sprintf("linewidth %g",i)
### end of code
结果:
顺便问一下,y 轴上的人工制品是什么,例如在 ytics 3,4,6,7,9,10(wxt 终端)?
我不确定官方对 gnuplot 的具体解释是什么,但根据我的经验,大多数图形包/工具/库等都对线宽为零使用特殊约定。
根据这个约定,线宽为零并不意味着不可见;它只是意味着 "the thinnest line possible"。这意味着可以在设备上显示的最细线,无论缩放、转换、逻辑到物理映射等如何。
因此,在显示器上,它将是一个像素宽的线。
在打印机上,这将是打印机能够打印的最细线。所以,如果打印机有足够高的分辨率,那么这条线实际上可能是看不见的,尽管放大镜应该仍然能够显示它的存在。
请注意,"regardless of zoom, etc." 意味着即使您设置了一些缩放比例,使 10 点线看起来像 100 像素一样粗,零宽度线仍然恰好是一个像素粗。
Mike Nakis 是正确的,至少对于一些 gnuplot 输出终端,包括 PostScript,gnuplot 要求一条宽度为 0 的线,并且相关语言或库将其解释为“1 像素”或 "thinnest possible line" .
同样"pointtype 0"并不是真正缺失,它产生了一个像素点。
但是,您可以使用线型 "nodraw" 完全禁用线条绘制。 这给出了一对互补的命令
plot sin(x) with linespoints lt nodraw pt 7 # only the points are visible
plot sin(x) with linespoints lt 1 pt 0 # only the lines are visible
在某些情况下,了解 lt nodraw
的等效数字可能会有所帮助 lt -2
。