带有矩阵的 gnuplot 线

问题描述 投票:0回答:1

我有以下脚本:

$DATA<<EOD
0.800,New York City,8008,8175,red,1,9175,1
1.000,New York City,8008,8175,red,1,9175,1
1.200,New York City,8008,8175,red,1,9175,1
1.800,Los Angeles,3694,3792,green,2,4792,2
2.000,Los Angeles,3694,3792,green,2,4792,2
2.200,Los Angeles,3694,3792,green,2,4792,2
2.800,Chicago,2896,2695,blue,3,3695,3
3.000,Chicago,2896,2695,blue,3,3695,3
3.200,Chicago,2896,2695,blue,3,3695,3
3.800,Houston,1953,2099,orange,4,3099,4
4.000,Houston,1953,2099,orange,4,3099,4
4.200,Houston,1953,2099,orange,4,3099,4
4.800,Philadelphia,1517,1526,yellow,5,2526,5
5.000,Philadelphia,1517,1526,yellow,5,2526,5
5.200,Philadelphia,1517,1526,yellow,5,2526,5
EOD
set datafile separator comma
set style data line
set term windows
set grid xtics  back
set grid noytics
unset xtics; unset ytics; unset x2tics; unset y2tics
set xtics nomirror; set ytics nomirror
set border 15.00000
set colorsequence default
set style textbox 1 opaque fc rgb "0x05472A" border lc rgb "0xFF0000" lw 2 margins 3,4
set style textbox 2 transparent noborder margins 1,2
set style textbox 3 opaque fc rgb "0xFFFF31" noborder
set title "{/Tahoma:Bold=22 Title}" rotate by 0
set xlabel "Cities"
set ylabel "Population (Millions)"
set key inside top right title "This is my Title" textcolor rgb "0x4B0082"
set xrange [0:6]
set xtics ("New York City" 1,"Los Angeles" 2,"Chicago" 3,"Houston" 4,"Philadelphia" 5)
plot $DATA every :3::0::15 using 1:3 lt 1 title "2000 Population",\
$DATA every :3::0::15 using 1:3:3 with labels offset 0,1.5 notitle

我得到以下图表: enter image description here

gnuplot 仅准备好 $DATA 中的第三列(这很好),但它正在读取 $DATA 中的所有行(这不好)。

我试图使用“every”命令来告诉 gnuplot 仅绘制从第一行 (0) 开始的每第三行;意思是,从 0.800,8008 到 1.800,3694 到 2.8,2896 到 3.8,1953 到 4.8,1517 画一条线,但我没有得到我想要的。

我已经使用了每个命令中的列值,但我要么收到错误消息,要么没有绘制数据,要么得到相同的结果。

稍后我将使用另外两个绘图命令来绘制剩余行的线条,但我陷入了第一组行的困境。

我做错了什么?

matrix gnuplot line
1个回答
0
投票

你仔细阅读

help every
了吗?

Syntax: 

      plot 'file' every {<point_incr>}
                          {:{<block_incr>}
                            {:{<start_point>}
                              {:{<start_block>}
                                {:{<end_point>}
                                  {:<end_block>}}}}}

这意味着,分别从第 0,1 和 2 行开始绘制每第 3 行:

plot $DATA every 3::0 u 1:3:3 w labels, \
        '' every 3::1 u 1:3:3 w labels, \
        '' every 3::2 u 1:3:3 w labels     
© www.soinside.com 2019 - 2024. All rights reserved.