2017-04-17 51 views
0

我有以下數據中RecettesInvestissement2017.datgnuplot:如何使用dat文件中的值作爲箭頭的目的地?

Excédent de fonctionnement capitalisé FCTVA et TA Caution Emprunt Subvention aménagement RD124 (Amendeuix) Subvention travaux de voirie 2015 Subvention travaux de voirie 2016 Subvention travaux de voirie 2017 Emprunt salle des associations Autofinancement 
7.32 1.95 0.07 38.35 11.19 0.76 1.36 0.90 2.87 35.23 

注意,在串字被與unbreackable空格和字符串分隔在一個符合正常空間separed。

我的繪圖文件是這樣的

clear 
set style data histogram 
set style histogram rowstacked 
set boxwidth 2 absolute 
set style fill solid border 
set xrange [-2,14] 
set yrange [0,110] 
unset xtics 
unset ytics 
unset key 
i=0 
do for [name in "`head -1 'RecettesInvestissement2017.dat'"]{ 
i=i+1 
set label i name at 6,5+6*i 
set arrow i from 5.8,5+6*i to 1,5+6*i} 
plot for [C=1:10] 'RecettesInvestissement2017.dat' u C 

此刻的結果是以下 enter image description here

我還是要調整字體,但之前,我想提出的箭頭到達中心堆疊酒吧的相關部分。我需要幫助。 謝謝。

回答

0

如果我理解你正確,你想繪製箭頭到每個彩色區域的中心。您可以使用函數來計算Y位置,並與矢量繪製:

cumul_Y=0. #cumulative height 
f(x)=(cumul_Y=cumul_Y+x, cur_Y=cumul_Y-x/2., cur_Y) 
#cur_Y is a Y position 
plot for [C=1:10] 'RecettesInvestissement2017.dat' u C, \ 
for [C=1:10] 'RecettesInvestissement2017.dat' u (5.8):(5+6*C):(-4.8):(f(column(C))-5-6*C) w vectors lc rgb('black'), \ 
for [C=1:10] 'RecettesInvestissement2017.dat' u (7):(5+6*C):(word(names,C)) w labels left font 'Arial,10' 

然後你就可以在繪圖命令添加其他部分,與標籤打印。

enter image description here

以下是完整的腳本,它爲我工作。您必須在數據文件的第一行開頭添加一個字符#和空格。

set term png size 1024,768 
set output 'plot.png' 
set style data histogram 
set style histogram rowstacked 
set boxwidth 2 absolute 
set style fill solid border 
set xrange [-2:14] 
set yrange [0:110] 
unset xtics 
unset ytics 
i=0 
names="`head -1 'RecettesInvestissement2017.dat'`" 
cumul_C=0. 
f(x)=(cumul_C=cumul_C+x, cur_C=cumul_C-x/2., cur_C) 
unset key 
plot for [C=1:10] 'RecettesInvestissement2017.dat' u C, \ 
for [C=1:10] 'RecettesInvestissement2017.dat' u (5.8):(5+6*C):(-4.8):(f(column(C))-5-6*C) w vectors lc rgb('black'), \ 
for [C=1:10] 'RecettesInvestissement2017.dat' u (6):(5+6*C):(word(names,C+1)) w labels left font 'Arial,10' 
unset output 
reset 
+0

非常感謝你。我認爲標籤是不同的,因爲複製粘貼將不可破壞的空間改變爲正常空間。 – meaulnes

+0

我正在嘗試。目前它不起作用,但我需要調查,因爲我不是很習慣gnuplot – meaulnes

+0

看編輯答案中的腳本。 –

0

以下是我與你的腳本 enter image description here

+0

我試過gnuplot 4.6和5.0,它在兩個版本都可以正常工作。 –

+0

版本5.0 patchlevel 5最後修改日期2016-10-02 – meaulnes

+0

您是否在標籤行的開頭添加了#和空格? –