【发布时间】:2015-07-29 15:14:16
【问题描述】:
我喜欢linespoints的绘图风格:
http://www.gnuplotting.org/join-data-points-with-non-continuous-lines/
但是,当我用这种样式绘制多条线时遇到了一个问题:
如您所见,第二系列点也将第一系列(线和点)空白,这是我不希望发生的。
使这成为可能的 gnuplot 功能是 pointinterval 和 pointintervalbox。
gnuplot 的文档:
pointinterval的负值,例如-N,表示点符号 只为每第 N 个点绘制一个框(实际上是圆形) 通过填充 背景,每个点符号后面都被空白 颜色。命令set pointintervalbox控制这个半径 空白区域。它是默认半径的乘数,即 等于点大小。
http://www.bersch.net/gnuplot-doc/set-show.html#set-pointintervalbox
由于文档说,填充背景颜色,我希望使用 transparent 背景可以解决问题,但似乎使用了白色。
Gnuplot 版本
gnuplot> show version long
G N U P L O T
Version 5.0 patchlevel 0 last modified 2015-01-01
Copyright (C) 1986-1993, 1998, 2004, 2007-2015
Thomas Williams, Colin Kelley and many others
gnuplot home: http://www.gnuplot.info
faq, bugs, etc: type "help FAQ"
immediate help: type "help" (plot window: hit 'h')
Compile options:
-READLINE +LIBREADLINE +HISTORY
-BACKWARDS_COMPATIBILITY +BINARY_DATA
+GD_PNG +GD_JPEG +GD_TTF +GD_GIF +ANIMATION
-USE_CWDRC +HIDDEN3D_QUADTREE
+DATASTRINGS +HISTOGRAMS +OBJECTS +STRINGVARS +MACROS +THIN_SPLINES +IMAGE +USER_LINETYPES +STATS +EXTERNAL_FUNCTIONS
最小工作示例 (MWE):
gnuplot-space-line-mark-style.gp
reset
set terminal pngcairo transparent size 350,262 enhanced font 'Verdana,10'
show version
set output 'non-continuous_lines.png'
set border linewidth 1.5
set style line 1 lc rgb '#0060ad' lt 1 lw 2 pt 7 pi -1 ps 1.5
set style line 2 lc rgb '#0020ad' lt 1 lw 2 pt 7 pi -1 ps 1.5
set pointintervalbox 3
unset key
set ytics 1
set tics scale 0.75
set xrange [0:5]
set yrange [0:4]
plot 'plotting_data1.dat' with linespoints ls 1,\
'plotting_data2.dat' with linespoints ls 2
plotting_data1.dat
# X Y
1 2
2 3
3 2
4 1
plotting_data2.dat
# X Y
1.2 2.4
2 3.5
3 2.5
4 1.2
更新
tex.stackoverflow.com 上提供了一个有效的pgfplots 解决方案
【问题讨论】:
-
恐怕,gnuplot 没有解决方案。 Gnuplot 绘制每个点两次,一次使用背景颜色,一次使用原始颜色。如果 gnuplot 会尊重背景颜色是透明的,它也不会隐藏一个绘图的线条。要正确地做到这一点,必须更改 gnuplot 源以物理缩短线段,而不仅仅是对其进行重绘。所以这将是一个功能请求。
-
@Christoph:感谢您的评论。您是否碰巧知道实际上可以做到这一点的不同绘图软件?使用不同的透明层是可能的。我认为 pgfplots 可以做到这一点。
-
不,不知道如何使用 pgfplots 或任何其他绘图软件。 pgfplots 可以做到这一点的机会非常高,所以你可以尝试在TeX.SX 询问。
标签: plot gnuplot transparency