Я пытаюсь построить свечу, используя массив. Мне это не удалось, и я получил сообщение об ошибке «Предупреждение: пропуск файла данных без действительных точек». Как я могу построить свечу, используя массив. Это мой скрипт gnuplot:
array Candle[6]
Candle[1] = 1
Candle[2] = 1
Candle[3] = 1000
Candle[4] = 2000
Candle[5] = 3000
Candle[6] = 4000
set datafile separator whitespace
set xrange[0:10]
set yrange[0:5000]
plot Candle using Candle[1]:Candle[3]:Candle[2]:Candle[6]:Candle[5] with candlesticks lt 3 lw 2 title 'Quartiles' whiskerbars
Примечание. Допустим, у меня есть файл с именем свеча.txt со следующими данными:
1 1 1000 2000 3000 4000
Свеча отображается правильно при использовании этой команды:
постройте 'candle.txt', используя 1:3:2:6:5 с свечами lt 3 lw 2 заголовок 'Квартили'
Только один подсвечник. Я получаю свечу через массив.
Хотя я не понимаю, что вы хотите делать с одной свечой и почему она должна быть из массива, а не из текстового файла или встроенного блока данных, но как насчет следующего?
Вы были близки. Обратите внимание на круглые скобки в команде сюжета.
Скрипт:
### plot single candlestick from array
reset session
array Candle[6] = [1, 1, 1000, 2000, 3000, 4000]
set xrange[0:2]
set offsets graph 0.1, graph 0.1, graph 0.1, graph 0.1
set boxwidth 0.5 absolute
plot Candle every ::::0 u (Candle[1]):(Candle[3]):(Candle[2]):(Candle[6]):(Candle[5]) \
w candlesticks lt 3 lw 2 title 'Quartiles' whiskerbars
### end of script
Результат:
@GuyB рад слышать. Опция every ::::0
позволяет построить график только один раз, иначе идентичные данные будут отображены 6 раз. Проверьте help every
. Вы также можете использовать plot '+' every ::::0 u (Candle[1]): ...
.
Как выглядят ваши входные данные? Я не могу поверить, что вы хотите вот так вводить свои данные. Почему бы не использовать простой текстовый файл или встроенный блок данных? Сколько свечей вы хотите построить?