Gnuplot,CSV,仅不同的标签?

Gnuplot,CSV,仅不同的标签?,gnuplot,Gnuplot,我需要一些关于使用gnuplot处理CSV文件的帮助。 我的CSV文件看起来像: a,1002 b,612 b,893 b,361 b,932 b,483 b,899 b,614 c,722 d,1038 d,1580 我希望它使用第二列作为Y值,行号作为X值。这很容易做到 我设法将第一列作为xtics标签,但在谷歌搜索了数小时后,我没有找到一个解决方案来告诉gnuplot只打印一次标签(我的x轴上塞满了标签,无法读取) 我需要像这样的东西: . . b .a ***** c .**

我需要一些关于使用gnuplot处理CSV文件的帮助。 我的CSV文件看起来像:

a,1002
b,612
b,893
b,361
b,932
b,483
b,899
b,614
c,722
d,1038
d,1580
我希望它使用第二列作为Y值,行号作为X值。这很容易做到

我设法将第一列作为xtics标签,但在谷歌搜索了数小时后,我没有找到一个解决方案来告诉gnuplot只打印一次标签(我的x轴上塞满了标签,无法读取)

我需要像这样的东西:

.
.     b
.a ***** c
.**    ***       d  ****
.        ************
........................
但我明白了:

    .
    .  
    .  *****
    .**     ***          ****
    .        ************
    ........................
   sdflksdjflksdjflksdjflkadjflksjdflkasj

轴上或曲线上的标签也可以,这无关紧要。

要设置非周期性的XTIC,请使用

set xtics ("a" 1, "b" 2, "c" 9, "d" 10)
您可以通过一个简单的脚本从数据中提取信息,例如

cut -f1 -d, data | while read name ; do
    let line++
    if [[ $name != $oldname ]] ; then
        oldname=$name
        echo "'$name'" $line
    fi
done

一些进一步的建议:

set pointsize 2.5
set xtics ("a" 1, "b" 5, "c" 9, "d" 10.5)
set xrange [0:12]
plot "< cat -n aa.csv | sed -e 's/,/  /g'" using 1:3 pt 7 notitle
然后将标签放置在上述任何类别(a,…,d)中的最高值之上。

(+1)很好,您提供了一种解决方案,可以避免手动计算标签坐标。
set format x ""