gnuplot ;:如何使用dat文件中的值作为箭头的目标?

gnuplot ;:如何使用dat文件中的值作为箭头的目标?,gnuplot,Gnuplot,我在RecettesInvestment2017.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 Emprun

我在RecettesInvestment2017.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
请注意,字符串中的单词用不可拆分的空格分隔,第一行中的字符串用普通空格分隔

我的绘图文件是这样的

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 
目前的结果如下

我仍然需要调整字体,但在我想让箭头到达堆叠栏相关部分的中心之前。我需要帮助。
谢谢。

如果我理解正确,您希望在每个彩色区域的中心绘制箭头。可以使用函数计算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'
然后,可以在“打印”命令中添加另一个部分,以使用标签打印

这是完整的脚本,它适合我。您必须在数据文件第一行的开头添加一个字符
#
和空格

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

这是我从你的剧本中得到的

非常感谢。我认为标签是不同的,因为复制粘贴将不可破坏的空间变成了正常的空间。我正在尝试。目前它不起作用,但我需要调查一下,因为我不太习惯gnuplotI尝试了gnuplot 4.6和5.0,它在两个版本中都可以正常工作。5.0版本patchlevel 5上次修改2016-10-02您是否在行的开头添加了#和带有标签的空格?起初我不知道它在数据文件中。现在可以了。再次感谢你的耐心。