gnuplot: yerrorbars с переменной linecolor - PullRequest
1 голос
/ 07 февраля 2012

Я хочу нарисовать yerrorbars разными цветами.Я могу рисовать точки разными цветами, используя следующий код:

reset
plot "-" using 1:2:3 with points linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end

Но я не уверен, как расширить это до yerrrorbars.Когда я пытаюсь использовать следующий код, панели ошибок окрашиваются только цветом по умолчанию.Как мне покрасить панели ошибок определенным цветом?

reset
plot "-" using 1:2:($1-$2) with yerrorbars linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end

Я нашел способ сделать это, разделив данные и затем нанеся их на график.Но если есть способ без разделения данных, это было бы более хорошим решением.

reset
plot "-" using 1:2:($1-$2) with yerrorbars lc 1, \
     "-" using 1:2:($1-$2) with yerrorbars lc 2, \
     "-" using 1:2:($1-$2) with yerrorbars lc 3

# x     y
-4.0  -3.8
-3.0  -2.9
-1.0  -1.2
 1.0   1.1
end

-2.0  -2.1
 2.0   2.2
end

 3.0   3.3
 4.0   4.5
end

Ответы [ 2 ]

2 голосов
/ 18 сентября 2014

«использование» указывает, какие столбцы будут входными для команды.Таким образом, поскольку ваш третий столбец имеет цвет линии, а yerrorbars linecolor ожидает, что четвертый столбец будет цветом линии, вам нужно указать 1: 2: ($ 1- $ 2): 3.Итак, это исправленная версия вашего примера:

reset
plot "-" using 1:2:($1-$2):3 with yerrorbars linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end
0 голосов
/ 07 июня 2013

Проблема в том, что третий столбец ($1 - $2) используется для построения панели ошибок (более конкретно, ydelta). Документация:

3 columns:  x  y  ydelta

Вам нужно добавить еще один столбец для цвета линии. Если вы хотите сделать что-то необычное, вы можете сделать что-то вроде:

plot "/tmp/test.foo" using 1:2:($1-$2):(int($1)+1) with yerrorbars linecolor variable

(например, используйте целую часть первого столбца и добавьте 1).

Или вы также можете использовать троичные операторы, если хотите выбрать один из двух цветов:

plot "-" using 1:2:($1  > 1 ? 1 : 3) with yerrorbars linecolor variable

(например, выберите цвет линии 1, если значение в первом столбце больше 1, в противном случае цвет строки 3)

...