如何从 gnuplot 中的数据设置点类型?
How set point type from data in gnuplot?
如何从 gnuplot 中的数据设置点类型?
gnuplot 脚本:
set terminal pngcairo size 640,480
set output "points.png"
set style data points
set auto x
set autoscale x
unset colorbox
plot 'test.data' using 2:1 with points notitle
test.data
32 35 8
34 34 6
36 28 1
34 32 2
28 30 7
38 30 9
34 29 2
35 36 9
39 34 3
31 33 9
28 31 6
35 30 5
33 41 4
32 37 3
如何从 3 列获取点类型?
plot 'gnuplot.data' using 2:1 with points pt (:3) notitle // error
抽象示例:
需要:
gnuplot 版本 4.6 补丁级别 4
没有选项 select 来自基于列的数据文件的点类型(相当于 linecolor variable
、pointsize variable
或 arrowstyle variable
)。基本上你有两个选择:
迭代所有可能的点类型(如果这应该是可变的,你可以用 stats
提取)并且对于每个数字只绘制那些与当前点类型匹配的点:
stats 'test.data' using 3 nooutput
unset key
set style data points
plot for [i=STATS_min:STATS_max] 'test.data' using 2:( == i ? : 1/0) lt 1 pt i ps 2
使用 labels
绘图样式和一系列 unicode 点符号,您 select 使用第三列的值作为索引。 (例如使用 http://www.shapecatcher.com or http://decodeunicode.org/en/geometric_shapes 找到合适的符号)
unset key
set encoding utf8
symbol(z) = "•✷+△♠□♣♥♦"[int(z):int(z)]
plot 'test.data' using 2:1:(symbol()) with labels textcolor lt 1
如何从 gnuplot 中的数据设置点类型?
gnuplot 脚本:
set terminal pngcairo size 640,480
set output "points.png"
set style data points
set auto x
set autoscale x
unset colorbox
plot 'test.data' using 2:1 with points notitle
test.data
32 35 8
34 34 6
36 28 1
34 32 2
28 30 7
38 30 9
34 29 2
35 36 9
39 34 3
31 33 9
28 31 6
35 30 5
33 41 4
32 37 3
如何从 3 列获取点类型?
plot 'gnuplot.data' using 2:1 with points pt (:3) notitle // error
抽象示例:
需要:
gnuplot 版本 4.6 补丁级别 4
没有选项 select 来自基于列的数据文件的点类型(相当于 linecolor variable
、pointsize variable
或 arrowstyle variable
)。基本上你有两个选择:
迭代所有可能的点类型(如果这应该是可变的,你可以用
stats
提取)并且对于每个数字只绘制那些与当前点类型匹配的点:stats 'test.data' using 3 nooutput unset key set style data points plot for [i=STATS_min:STATS_max] 'test.data' using 2:( == i ? : 1/0) lt 1 pt i ps 2
使用
labels
绘图样式和一系列 unicode 点符号,您 select 使用第三列的值作为索引。 (例如使用 http://www.shapecatcher.com or http://decodeunicode.org/en/geometric_shapes 找到合适的符号)unset key set encoding utf8 symbol(z) = "•✷+△♠□♣♥♦"[int(z):int(z)] plot 'test.data' using 2:1:(symbol()) with labels textcolor lt 1