Подсвечники Gnuplot и ширина коробки

Работал со свечами на реальных финансовых данных. Это прекрасно работает, если у меня нет пробелов в данных, которых много с историческими финансовыми данными.

У меня было «установить относительную ширину окна 1», и это работает нормально, в большинстве случаев это дает мне правильную «ширину» свечи. Но если между 2 точками нет данных, свеча станет толще, т.е. она расширится, чтобы заполнить этот разрыв. Визуал ужасный, расширение справа очень плохое.

Я пробовал играть с set boxwidth x absolute, но не могу понять, как он отображается. Я сузил его до set boxwidth 37500 absolute и понятия не имею, почему это число работает, хотя у него есть еще более серьезные проблемы, чем относительно set boxwidth 1.

Первое изображение — это то, как это выглядит с использованием set boxwidth 37500 absolute. Там даты идут от 31.01.13, 01.02.13, 03.02.13, 04.02.13, 05.02.13. Нет 02.02.13:

введите здесь описание изображения

Абсолют показывает правильный разрыв между 01.02 и 02.02, но 03.02 и 04.02 перекрываются по причинам, которые я не могу объяснить.

Второе изображение использует относительную ширину окна 1. Это в основном так, как я хочу. Свечи расположены рядом и в основном справа. А вот разрыв от 02.02.13 он жирует вправо. 09.02.13 также есть пробел, где он также утолщается, или, возможно, 2 с каждой стороны расширяются, чтобы заполнить пробел, я не знаю.

введите здесь описание изображения

Как я могу настроить это так, чтобы все свечи были одинаковой ширины рядом, а пробелы в данных были пустыми?

Я гуглил это как сумасшедший, и никто не говорит об этом. Несколько примеров свечей, которые я нашел, используют не «даты», а целые числа, совершенно бесполезные. Графики свечей требуют дат в соответствии с руководством.

Запуск патча Gnuplot 4.6 уровня 0 в Windows 7.

Спасибо

PS: я должен был добавить данные здесь идет.

basic.csv:

2013-01-15 00:00:00,93.879000,93.949000,92.874000,93.078000
2013-01-16 00:00:00,93.079000,93.672000,92.458000,92.800000
2013-01-17 00:00:00,92.799000,95.011000,92.629000,94.616000
2013-01-18 00:00:00,94.617000,94.872000,94.157000,94.662000
2013-01-20 17:00:00,94.649000,94.820000,93.965000,94.155000
2013-01-21 00:00:00,94.159000,94.938000,93.726000,94.009000
2013-01-22 00:00:00,94.011000,94.284000,93.147000,93.231000
2013-01-23 00:00:00,93.229000,94.024000,92.793000,93.649000
2013-01-24 00:00:00,93.650000,94.715000,93.559000,94.489000
2013-01-25 00:00:00,94.490000,95.083000,94.472000,94.749000
2013-01-27 17:00:00,94.819000,95.007000,94.652000,94.834000
2013-01-28 00:00:00,94.835000,94.968000,94.082000,94.809000
2013-01-29 00:00:00,94.803000,95.330000,94.370000,95.248000
2013-01-30 00:00:00,95.245000,95.450000,94.255000,94.365000
2013-01-31 00:00:00,94.372000,95.799000,94.328000,95.714000
2013-02-01 00:00:00,95.715000,96.718000,95.457000,96.597000
2013-02-03 17:00:00,96.716000,96.777000,96.370000,96.572000
2013-02-04 00:00:00,96.574000,97.064000,95.968000,96.044000
2013-02-05 00:00:00,96.043000,97.426000,95.945000,97.131000
2013-02-06 00:00:00,97.133000,97.284000,96.092000,96.395000
2013-02-07 00:00:00,96.396000,97.023000,95.813000,96.145000
2013-02-08 00:00:00,96.146000,96.182000,95.124000,95.625000
2013-02-10 17:00:00,95.623000,95.744000,95.210000,95.339000
2013-02-11 00:00:00,95.336000,96.877000,95.168000,96.537000
2013-02-12 00:00:00,96.536000,96.719000,95.776000,96.214000
2013-02-13 00:00:00,96.216000,96.890000,96.114000,96.775000
2013-02-14 00:00:00,96.771000,96.964000,95.609000,95.621000
2013-02-15 00:00:00,95.622000,96.676000,95.521000,96.351000

absolute.plt:

reset

set border linecolor rgbcolor "yellow"
set key textcolor rgbcolor "white"

set obj 1 rectangle behind from screen 0,0 to screen 1,1
set obj 1 fillstyle solid 1.0 fillcolor rgbcolor "black"

set xdata time
set timefmt"%Y-%m-%d %H:%M:%S"
set xrange ["2013-01-15 00:00:00":"2013-02-15 23:59:59"]

set yrange [*:*]
set datafile separator ","

set palette defined (-1 'red', 1 'green')
set cbrange [-1:1]
unset colorbox

set style fill solid noborder
set boxwidth 37500 absolute

set title "AUDJPY" textcolor rgbcolor "white"
plot 'basic.csv' using 1:2:4:3:5:($5 < $2 ? -1 : 1) with candlesticks palette

relative.plt:

reset

set border linecolor rgbcolor "yellow"
set key textcolor rgbcolor "white"

set obj 1 rectangle behind from screen 0,0 to screen 1,1
set obj 1 fillstyle solid 1.0 fillcolor rgbcolor "black"

set xdata time
set timefmt"%Y-%m-%d %H:%M:%S"
set xrange ["2013-01-15 00:00:00":"2013-02-15 23:59:59"]

set yrange [*:*]
set datafile separator ","

set palette defined (-1 'red', 1 'green')
set cbrange [-1:1]
unset colorbox

set style fill solid noborder
set boxwidth 1 relative

set title "AUDJPY" textcolor rgbcolor "white"
plot 'basic.csv' using 1:2:4:3:5:($5 < $2 ? -1 : 1) with candlesticks palette

person Bodger    schedule 06.06.2014    source источник


Ответы (1)


При использовании set boxwidth absolute ширина задается в единицах по оси x, которая в случае дат равна секундам. Итак, ширина 37500 составляет 10 часов.

Вы также можете использовать явную ширину в 6-м столбце и переключиться на -2, чтобы получить автоматическую ширину поля для определенных столбцов. Однако это потребует от вас манипулирования файлом данных вручную.

Еще один момент: важно ли вам включать часы в некоторые точки данных? Именно это сужает расстояние между некоторыми соседними точками. Вы можете игнорировать часы, что даст вам точечное расстояние минимум в один день. Чтобы убрать часы, используйте strptime в выражении using:

reset

set border linecolor rgbcolor "yellow"
set key textcolor rgbcolor "white"

set obj 1 rectangle behind from screen 0,0 to screen 1,1
set obj 1 fillstyle solid 1.0 fillcolor rgbcolor "black"

set xdata time
set timefmt"%Y-%m-%d %H:%M:%S"
set xrange ["2013-01-15 00:00:00":"2013-02-15 23:59:59"]

set yrange [*:*]
set datafile separator ","

set palette defined (-1 'red', 1 'green')
set cbrange [-1:1]
unset colorbox

set style fill solid noborder
set boxwidth 60000 absolute

set title "AUDJPY" textcolor rgbcolor "white"
plot 'basic.csv' using (strptime('%Y-%m-%d', strcol(1))):2:4:3:5:($5 < $2 ? -1 : 1) with candlesticks palette

Результат с 4.6.0:

введите здесь описание изображения

person Christoph    schedule 07.06.2014
comment
Спасибо, я просмотрел документы и не смог убедиться, что это было за секунды. - person Bodger; 08.06.2014