如何让 Gnuplot 对循环中的每个条形使用不同的预定义颜色?

问题描述 投票:0回答:1

基于此https://stackoverflow.com/a/63699595/1140754我定义了一个辅助

myLinecolor(i) = word(LINECOLORS,i)
来为每个条形使用不同的颜色,它对应于输入数据文件中一行的值。

然而,关于正在绘制的条形索引(即数据文件中的行),我应该将哪个参数传递给

myLinecolor()

LINECOLORS = 'red green blue yellow brown gray turquoise'
myLinecolor(i) = word(LINECOLORS,i)
set output 'results.svg'
plot 'results.csv' every ::1 using 0:5:xticlabels(stringcolumn(1)) with boxes lc rgb myLinecolor(?????)

例如我想要column1=红色,column2=绿色,...,column7=青绿色

gnuplot
1个回答
0
投票

您还可以通过

linestyle
linetype
和索引定义线条颜色,请检查
help linestyle
help linetype
。这里是通过
lc rgb
完成的,检查
help linecolor

脚本:

### define line color from a string of colornames
reset session

$Data <<EOD
 1    1.1   1.2   1.3   1.4   1.5   1.6   1.7   1.8
 2    2.1   2.2   2.3   2.4   2.5   2.6   2.7   2.8
 3    3.1   3.2   3.3   3.4   3.5   3.6   3.7   3.8
EOD

LINECOLORS     = 'red green blue yellow brown gray turquoise'
myLinecolor(i) = word(LINECOLORS,i)
set key top left

plot for [col=2:8] $Data u 1:col w lp pt 7 lc rgb myLinecolor(col-1) ti sprintf("Column %d",col)
### end of script

结果:

© www.soinside.com 2019 - 2024. All rights reserved.