Gnuplot 打印带有说明列和多行的CV

Gnuplot 打印带有说明列和多行的CV,gnuplot,Gnuplot,我有一个包含此内容的csv文件(行=标题+10个值,行=图表中的线条) 列计数是已知的(但如果只需要标题并且值计数是打开的(但所有行都是相同的),则最好是打开行计数 Test1;0,051;0,040;0,051;0,052;0,051;0,049;0,051;0,052;0,059;0,044 Test2;0,016;0,016;0,016;0,019;0,021;0,021;0,021;0,021;0,022;0,022 Test3;0,216;0,200;0,210;0,205;0,205

我有一个包含此内容的csv文件(行=标题+10个值,行=图表中的线条) 列计数是已知的(但如果只需要标题并且值计数是打开的(但所有行都是相同的),则最好是打开行计数

Test1;0,051;0,040;0,051;0,052;0,051;0,049;0,051;0,052;0,059;0,044
Test2;0,016;0,016;0,016;0,019;0,021;0,021;0,021;0,021;0,022;0,022
Test3;0,216;0,200;0,210;0,205;0,205;0,205;0,203;0,206;0,205;0,204
在图书馆工作

现在我想用gnuplot打印它

我试过了

set xrange [1:10]
set yrange [0:2]
plot for [row=0:*] 'test.csv' matrix every :::row::row with lines
但这只给了我几个错误信息

"gnuplot.txt" line 7: warning: matrix contains missing or undefined values
"gnuplot.txt" line 7: warning: matrix contains missing or undefined values
"gnuplot.txt" line 7: warning: matrix contains missing or undefined values
"gnuplot.txt" line 7: warning: matrix contains missing or undefined values

如果有人能给我一个提示就好了。不幸的是,gnuplot不喜欢行中的数据,也没有转置函数。我想有一种方法可以像您尝试的那样使用
matrix
来绘制行,但是目前我没有看到一种直接的方法可以将行标题包含为键条目

因此,要么使用外部工具转置数据,要么使用下面笨拙的gnuplot转置尝试,然后绘制列。至少,在不安装额外工具的情况下,这应该适用于Linux和Windows

您的小数点是
。因为我的标准小数是
,所以我必须设置:

set decimalsign locale 'french'   # or 'german' might also work
数据:
test.csv

Test1;0,051;0,040;0,051;0,052;0,051;0,049;0,051;0,052;0,059;0,044
Test2;0,016;0,016;0,016;0,019;0,021;0,021;0,021;0,021;0,022;0,022
Test3;0,216;0,200;0,210;0,205;0,205;0,205;0,203;0,206;0,205;0,204
代码:

### plot row data with rowheader as key entry
reset session

myFile = 'test.csv'

set datafile separator ';'
set decimalsign locale 'french'   # or 'german' should also work

# transpose data
stats myFile u 0 nooutput
set table $Dummy
    set print $DataTransposed
        do for [i=1:STATS_columns] {
            LINE = ''
            do for [j=0:STATS_records-1] {
                plot myFile u (a=stringcolumn(i)) every ::j::j with table
                LINE = LINE.sprintf('%s', j < STATS_records-1 ? a.";" : a)
            }
        print LINE
        }
    set print
unset table
undefine $Dummy

plot for [i=1:STATS_records] $DataTransposed u ($0+1):i w l ti columnheader
### end of code
###以rowheader作为键条目打印行数据
重置会话
myFile='test.csv'
设置数据文件分隔符“;”
设置小数点区域设置“法语”或“德语”也可以
#转置数据
统计myFile u 0无输出
设置表$Dummy
设置打印$DataTransposed
[i=1:STATS\u列]的do{
行=“”
[j=0:STATS_records-1]的do{
用表格打印myFile u(a=stringcolumn(i))every::j::j
LINE=LINE.sprintf(“%s”,j
结果:

### plot row data with rowheader as key entry
reset session

myFile = 'test.csv'

set datafile separator ';'
set decimalsign locale 'french'   # or 'german' should also work

# transpose data
stats myFile u 0 nooutput
set table $Dummy
    set print $DataTransposed
        do for [i=1:STATS_columns] {
            LINE = ''
            do for [j=0:STATS_records-1] {
                plot myFile u (a=stringcolumn(i)) every ::j::j with table
                LINE = LINE.sprintf('%s', j < STATS_records-1 ? a.";" : a)
            }
        print LINE
        }
    set print
unset table
undefine $Dummy

plot for [i=1:STATS_records] $DataTransposed u ($0+1):i w l ti columnheader
### end of code

控制台输出仅为十进制,并且gnuplot窗口立即关闭,没有任何其他消息,im使用windows下的“gnuplot 5.2 patchlevel 8”从您是否有由
wgnuplot.exe启动的“永久”控制台
。如何加载脚本?在控制台中:
加载“myScript.gp”
?您的gnuplot工作目录是什么?在gnuplot控制台中,键入
pwd
。脚本和文件的位置是什么
test.csv
?启动wgnuplot.exe并在gnupolt控制台中加载“gnuplot.txt”或gnuplot.exe gnuplot.txt-persist时,ok工作正常-非常感谢您的帮助