【问题标题】:gnuplot: with x and y-axis label (rowstacked) with row and column namesgnuplot:带有 x 和 y 轴标签(rowstacked),带有行和列名称
【发布时间】:2014-05-14 09:31:36
【问题描述】:

我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 和 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

这是输出:

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

非常感谢!

【问题讨论】:

  • 对不起,我不明白你的问题。生成的图像应该如何?你想要'a'等作为关键条目,还是其他什么?
  • @Christoph 我必须使标签动态化。因为我以某种方式对数据进行排序。顺序可以是 [sys3, sys4, sys2, sys1],取决于数据。你明白我的意思吗?
  • 嗯,xticklabels 是动态的。但是您也在谈论列名...您希望它们用作图例条目吗?
  • @Christoph:是的,因为我的实际数据没有图例条目。作为我的脚本: using($2):xtic(1) title "data 1" lt -1 fs pattern 3, \ 我使用了标题“data 1”(不是来自表数据)。但在这种情况下,我也想订购模式统计。即:第一列使用模式 3,第二列使用模式 6,等等。对此@Christoph 有什么想法吗?

标签: graph gnuplot stacked-chart


【解决方案1】:

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

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

问候,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2013-08-09
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多