我生成了N列堆积的直方图,但我遇到了唯一键的问题。数据文件如下所示:
Process_1 10 Process_1 20 Process_4 10 Process_1 10
Process_2 20 Process_4 35 Process_6 30 Process_2 10
Process_3 30 Process_3 15 Process_1 20 Process_4 30
我正在使用以下脚本:
set terminal png small size 1024,768
set out "outHistograms.png"
set style data histogram
set style fill solid border
set style histogram columnstacked
set boxwidth 0.6 relative
plot \
"data.csv" using 2:key(1) , \
"data.csv" using 4:key(3) , \
"data.csv" using 6:key(5) , \
"data.csv" using 8:key(7) \
如您所见,某些键在不同的直方图中是常见的,有些则不是。
结果在这里可见: http://s28.postimg.org/pzjk5egh9/exampl_hist.png (抱歉,由于我最近的订阅,我无法将图片包含在帖子中)
问题: 密钥是重复的,颜色不是密钥唯一的。
我想删除重复项,并在所有直方图中为每个进程提供唯一的键(和颜色)。
我也尝试了以下相同的结果:
plot \
newhistogram "a" lt 1 at 0, "data.csv" using 2:key(1), \
newhistogram "b" lt 1 at 4, "data.csv" using 4:key(3)
我想我需要一种方法'告诉'gnuplot所有奇数列都需要作为一个整体来对待。
感谢您的帮助
答案 0 :(得分:1)
gnuplot无法对您的数据进行排序和识别,您需要为六个键(=进程)设置六行。
Process_1 10 15 20
Process_2 10 0 0
Process_3 10 15 20
Process_4 0 35 0
Process_5 0 0 0
Process_6 0 0 20
现在你只绘制第(2)栏中第一次迭代的关键点,就是这样。
set style data histogram
set style fill solid border
set style histogram columnstacked
set boxwidth 0.6 relative
plot \
data using 2:key(1) , \
data using 3 , \
data using 4 , \
P.S。您的数据不是“.csv”(逗号分隔值)。我刚刚将文件名保存在字符串变量“data”中。
P.P.S。请在发布之前从脚本中删除所有装饰(标题标题等)。终端设置也是超级的。除非当然有问题。