使用GNUplot按行打印.csv数据

使用GNUplot按行打印.csv数据,csv,row,gnuplot,Csv,Row,Gnuplot,我有一个只包含数值的.csv文件。我想将每一行绘制为单独的绘图,并使用y轴上的值与值的位置作为x值。 即: 10,2,5,6 9,7,8,6 有没有办法不在外部重新排列数据的情况下实现这一点?根据我所看到的,gnuplot可以一列一列地绘制文件。因此,您可能需要重新排列数据。 您可以看看这个主题: 这里有一组非常模糊的命令,可以按您的要求执行。我不太愿意推荐它,因为它没有明显的模糊性,而且对于空字段或丢失的数据来说,它是脆弱的。需要gnuplot版本5 # Specify that this i

我有一个只包含数值的.csv文件。我想将每一行绘制为单独的绘图,并使用y轴上的值与值的位置作为x值。 即:

10,2,5,6
9,7,8,6


有没有办法不在外部重新排列数据的情况下实现这一点?

根据我所看到的,gnuplot可以一列一列地绘制文件。因此,您可能需要重新排列数据。 您可以看看这个主题:

这里有一组非常模糊的命令,可以按您的要求执行。我不太愿意推荐它,因为它没有明显的模糊性,而且对于空字段或丢失的数据来说,它是脆弱的。需要gnuplot版本5

# Specify that this is a *.csv file
set datafile separator ","
# This command will plot value as a function of column for row n
plot 'rowdata' matrix using 1:0 every :::n::n with lp
# This command will do the same for each row in the file
plot for [col=1:*] 'rowdata' matrix using 1:0 every :::col::col with lp

对于那些感兴趣的人,以下是我最后的两个脚本:

使用gnuplot设置一系列绘图的动画(在开始和结束时停止):

创建动画gif:

set term gif animate
set output "radii.gif"
unset key
set datafile separator ","
do for [col=0:19000] { \
unset yrange
stats "radii.csv" every ::(col + 1)::(col + 1) using (time = $203) name "R" nooutput 
set title sprintf("Time = %d",time)
stats "measureUnbound.csv" matrix every :::col:201:col name "mU" nooutput
ubMin = 1.*mU_max
set yrange [0:40]
pl "radii.csv" matrix u 1:0 every :::(col + 1):201:(col + 1) w l \
,"radii.csv" matrix u 1:0 every :::0:201:0 w l \
,"measureUnbound.csv" matrix u 1:($3/ubMin*19.5) every :::col:201:col w i
}
set output
谢谢你的帮助


看起来不错。如何省略该行的最后一个值?
set term gif animate
set output "radii.gif"
unset key
set datafile separator ","
do for [col=0:19000] { \
unset yrange
stats "radii.csv" every ::(col + 1)::(col + 1) using (time = $203) name "R" nooutput 
set title sprintf("Time = %d",time)
stats "measureUnbound.csv" matrix every :::col:201:col name "mU" nooutput
ubMin = 1.*mU_max
set yrange [0:40]
pl "radii.csv" matrix u 1:0 every :::(col + 1):201:(col + 1) w l \
,"radii.csv" matrix u 1:0 every :::0:201:0 w l \
,"measureUnbound.csv" matrix u 1:($3/ubMin*19.5) every :::col:201:col w i
}
set output