1

我google了之后没有回答这个问题。

我有这样的data.txt:

     a b c
sys1 3 2 0
sys2 4 4 4
sys3 5 2 4
sys4 6 4 1

我使用带有模式的 rowstacked 样式创建图形,目前我手动选择模式。我必须用 sys1-sys4 和 ac 绘制我的 data.txt。这个矩阵总是有相同的大小,但我应该用不同的顺序进行排序和重新生成。

这是我的 gnuplot 脚本:

set term pos eps font 20
set style data histogram
set style histogram rowstacked
set key invert reverse right outside # above outside  or left outside
set boxwidth 0.75


set ylabel "Count"
set xlabel "System"
set xtics nomirror rotate by -270
set output 'eps/a1-count.eps'
plot 'a1-count' \
    using($2):xtic(1)   title "data 1" lt -1 fs pattern 3, \
''  using($3)           title "data 2" lt -1 fs pattern 4, \
''  using($3)           title "data 3" lt -1 fs pattern 6

这是输出: 在此处输入图像描述

我还在这里找到了一些解决方案,但它适用于热图。任何人都可以帮助我吗?

非常感谢!

4

1 回答 1

0

您可以使用 linux 'sort' 命令直接对 gnuplot 中的数据进行排序:(-nk[column]):

plot '<sort -nk1 data.txt'  \
    u 2:xtic(1)   title "data 1" lt -1 fs pattern 3, \
''  u 3           title "data 2" lt -1 fs pattern 4, \
''  u 3           title "data 3" lt -1 fs pattern 6

'' 空字符串文件调用,将保留已排序的数据文件。

您的问题的标题不正确,但多亏了您,我学会了 :xtic(column) 功能和正确的做法:set xtics nomirror rotate by -270

问候,

于 2021-11-24T10:00:58.580 回答