2016-10-15 6 views
1

を使用して積み重ね棒グラフを生成する:(合計10行がある)私は以下のようなデータファイルがGNUPLOT

1.5 1.6 3.0 4.0 1.2 1.3 
1.7 1.1 2.6 3.4 1.5 1.6 
...... 

の各行は、ここでデータセットに3つの方法の結果に対応しています最初の2つの値は最初のメソッド、次の2つは2番目のメソッド、最後の2つは最後のメソッドです。私は3つのバー、方法に対応するそれぞれが存在するであろう、積み重ね棒グラフを生成する、そのような各データセットについて

  • こと。

  • 各方法について、そのバーは2つに分割されます。ここで、下端(上端)は最初の(秒)値を表します。

  • 方法のバーの色は、別の方法の色と異なります。

は具体的には、私が欲しいlink(申し訳ありませんが、私はここに画像を表示するのに十分な評判を持っていません。)のような図

どのように私はこの使用してGNUPLOTを達成することができますか?

答えて

0

このタスクはgnuplotのヒストグラムにとっては複雑すぎます。クラスタリングとスタッキングを組み合わせるためです。

unset key 
set xtics 1,4 
set for [i=0:9] xtics add (sprintf("data %d", i + 1) i*4 + 1) 
set style fill solid noborder 
set style data boxxy 
set autoscale xfix 

set linetype 1 lc rgb "#9400D3" 
set linetype 2 lc rgb "#009E73" 
set linetype 3 lc rgb "#56B4E9" 
set linetype 4 lc rgb "#B46AD3" 
set linetype 5 lc rgb "#64C4AA" 
set linetype 6 lc rgb "#8BC8EC" 

plot for [i=0:2] "file.dat" u ($0 * 4 + i):(0.5*column(2*i + 1)):(0.5):(0.5*column(2*i+1)),\ 
    for [i=0:2] "file.dat" u ($0 * 4 + i):(0.5*column(2*(i+1)) + column(2*i + 1)):(0.5):(0.5*column(2*(i+1))) 

set forは、各行ごとにセンターバーに手動でラベルを追加します。私はあなたのためにboxxyスタイルで手動で各ボックス部分を描画するのが最も適切であると、考えています。

最初のplotは、各バーのボトム値をプロットし、2番目のラインはトップ値をプロットします。

enter image description here

+0

ありがとうございます。申し訳ありませんが、私は十分な評判がないので、投票をすることはできません。 – addddddc

関連する問題