1
我试图用一个只包含0或1的简单数据文件(.example
)构建一种条形图。这里包含的数据.example
:Gnuplot - 用两个命令迭代
dest P1 P2 P3 P4 P5 NA
D1 0 1 1 0 0 0
D2 0 0 1 0 0 0
D3 0 1 0 1 0 0
""
GPV 1 1 1 1 1 1
,这里是我使用的代码:
set style histogram rowstacked title textcolor lt -1
set datafile missing 'nan'
set style data histograms
plot '.example' using ($2==0 ? 1 : 0) ls 17 title 'NA', \
'' using ($2==1 ? 1 : 0) ls 1, \
for [i=3:5] '.example' using (column(i)==0 ? 1 : 0) ls 17 notitle, \
for [i=3:5] '' using (column(i)==1 ? 1 : 0) ls i-1
其中最后两个命令遍历一个潜在的大量 列堆叠白色或彩色的取决于column(i)
的值。要保持直方图中不同列的颜色顺序相同,我需要将两个迭代合并为一个包含两个命令的迭代。
可能吗?有关如何做到这一点的任何建议?
嗨,谢谢你的帮助。您提出的解决方案对我来说是完美的,但实际上'列'只能与'使用'一起使用,而不能与'ls'或'标题'规范一起使用。另外,嵌套循环并没有真正的帮助,因为正确理解我需要基于数据中的0或1读取来指定'ls'。 –
对不起,我无法测试该命令,因为您没有发布示例数据文件(下次尝试这样做)。我会用不同的解决方案解决我的问题。 – Miguel
此外,在将来,请尝试将问题降低到与实际问题相关的最小值,例如删除示例中其他文件的绘图。这使得它更容易引起人们的注意,因为我们需要更少的时间和精力来阅读和理解问题。 – Miguel