gnuplot:带有 x 和 y 轴标签(行堆叠)以及行和列名称

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

我谷歌后还没有回答这个问题。

我有这样的data.txt:

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

我使用带模式的行堆叠样式创建了图形,目前我手动选择模式。我必须用 sys1-sys4 和 a-c 绘制我的 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

这是输出: enter image description here

我还找到了一些解决方案here但它是针对热图的。有人可以帮助我吗?

非常感谢!

graph gnuplot stacked-chart
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) 功能和正确的做法: 设置 xtics nomirror 旋转 -270

问候,

© www.soinside.com 2019 - 2024. All rights reserved.