ошибка gnuplot: недостаточно столбцов для переменного цвета

Я выполняю следующий скрипт gnuplot:

set terminal svg
set output "file.svg"
set yrange [0:1]
set style fill solid
set key top left
set style fill transparent solid 0.6 border lt -1
set palette model RGB defined (1 "red", 2 "blue")
set xtics rotate by -45
plot "file.data" using 3:xticlabels(2):1 title "" with boxes palette

и file.data выглядит так:

1   name1   0.356877
1   name2   0.643123
2   name3   0.688312
2   name4   0.311688

Поэтому я хочу, чтобы поля с ведущим 2's в файле данных были синими, а те, с 1 впереди, были красными.

Он терпит неудачу, когда я добавляю ключевое слово palette и печатаю сообщение об ошибке в заголовке.

Gnuplot — это патч v4.6 уровня 4, я запускаю его на Ubuntu 14.04. Я создавал цветные графики таким образом раньше, так что это, вероятно, просто крошечная ошибка, которую я не замечаю, но у меня нет идей.


person kunterbunt    schedule 28.07.2014    source источник


Ответы (1)


В вашем скрипте две ошибки:

неправильный спецификатор формата

Согласно документации gnuplot (? boxes в командной строке), если три столбца ввода предоставлены plot with boxes, третий столбец является параметром ширины для полей. Использование переменного цвета линии/заливки требует добавления дополнительного столбца ввода:

plot "file.data" using 0:3:(1):1 with boxes

Объяснение четырех столбцов:

  1. Столбец 0 содержит индекс: первый — 0, второй — 1 и т. д. Они дают позицию x (при условии, что каждый блок является индивидуальным).
  2. Столбец 3 — это ваши данные y.
  3. Столбец (1) содержит числовое значение 1 для ширины x ваших блоков.
  4. Столбец 1 содержит информацию о вашем цвете.

отсутствует параметр lc (linecolor) для команды построения графика

Вся ваша команда построения графика должна выглядеть как график "file.data" с использованием заголовка 0: 3: (1): 1 "" с палитрой lc полей.

также обратите внимание

Имейте в виду, что информация о палитре масштабируется так, чтобы быть между минимальными и максимальными значениями cbrange. Я имею в виду, что если ваши данные двоичные (в данном случае 1 или 2), палитра будет построена правильно, но если вам нужны более конкретные цвета (например, для значений данных 1/2/3) и вы установите трехцветный палитра точно так же может работать не так, как вы ожидаете.

person andyras    schedule 28.07.2014
comment
Нет необходимости указывать фиксированную ширину окна, использование plot "file.data" using 0:3:1:xtic(2) with boxes palette работает нормально. - person Christoph; 29.07.2014