2013-03-10 72 views
1

我曾嘗試過關於Gnuplot的瀏覽教程和示例,但似乎沒有涵蓋我手頭上的問題。是否可以在垂直折線圖的gnuplot的y軸上標註標籤?

我製成的圖表的一個樣機我要提請:

Desired plot http://i50.tinypic.com/206o54z.png

數據會以這種方式呈現:

Item A 10 80 
Item B 24 75 
Item C 25 52 
Item D 24 45 
Item E 30 43 
.... 

的行數將是更高的,但是隻有兩個系列'。

對於Gnuplot,我是完整的初學者,但是由於Excel無法繪製垂直折線圖我認爲也許Gnuplot可以製作,但一直未能弄清楚如何甚至可能在所有。

任何指示方向我應該採取讚賞。

回答

2

此答案假定數據文件的列是製表符分隔的。

有幾個步驟來實現這一目標:

  1. 您需要交換x和y座標,例如使用using 2:0而不是using 0:2
  2. y軸需要顛倒:set yrange [] reverse
  3. 使用第一列作爲y-tics的標籤:using 2:0:yticlabels(1)
  4. 將密鑰放在圖上方:set key above

所有一起:

set key above 
set yrange [] reverse 
set datafile separator '\t' 
plot 'data.txt' using 2:0:yticlabels(1) with lines title 'Series A', \ 
    'data.txt' using 3:0    with lines title 'Series B' 

結果:

Result of the above Gnuplot script

+1

如果他們不是製表符,我想你可以使用類似於:'使用3:0:yticlabels(strcol(1)。''.strcol(2))' – mgilson 2013-03-11 19:27:55

+0

謝謝!正是我需要的。 – thepanu 2013-03-11 21:00:47

0

當我做了一些格式,以我的圖形,並決定分享我的最終結果,並在該情況下,有人否則會遇到類似的問題。我可能以困難的方式做到了這一點,但它完成了工作。

set key above center 
set yrange [] reverse 
set datafile separator '\t' 
set style line 1 lt 'dashed' lw 4 lc 'black' 
set style line 2 lt 1 lw 3 lc 'black' 
set style increment userstyle 
set xrange [0:100] 
set xtics add 25 
plot 'data' using 2:0:ytic(1) with lines title 'Now', \ 
     'data' using 3:0 with lines title '10 years ago' 

Sample chart

再次感謝雷神!