2016-02-18 8 views
2

Мне нужно нарисовать точки и пустые точки на графике, чтобы показать неподвижные точки. Они должны выглядеть на рисунке ниже: пустая точка (круг) и толстая точка.Точки и пустые точки в gnuplot

Есть ли способ построить что-то подобное? Благодаря

Dots http://www.emathematics.net/imagenes/discontinuity2.gif

+0

Да, вы можете нарисовать круги или предопределенные пустые точки и т. Д. То, что лучше всего работает, зависит также от того, как структурированы ваши данные. Можете ли вы привести пример того, как структурированы ваши данные и как определяются ваши фиксированные точки? – Christoph

ответ

2

Если вы хотите использовать встроенные типы точек, то, как правило, (в зависимости от терминала) с кружком и пустой круг. Выдача команды test покажет вам, что доступно. Например, с WXT терминала, я вижу

enter image description here

, который показывает мне, что я могу получить заполненный круг с точкой типа 7 и пустой с точки 6 типа (мы не беспокоиться о различных цвета, поскольку они унаследованы от типа линии).

Теперь простой способ получить наш желаемый сюжет - это просто указать plot datafile with points pt 6 или тип точки 7. Это сложнее, если вам нужно, чтобы оно зависело от ваших данных.

Предположим, что мои данные выглядит следующим образом:

1 3 0 
5 8 1 
2 6 0 
3 2 1 

Первые два столбца являются координатами х и у, а третий говорит мне, если я должен использовать пустую точку (0) или заполненную точку (1). К сожалению, gnuplot не поддерживает команду типа переменной точки (что-то вроде plot datafile u 1:2:($3+6) with linespoints pt var), и это именно то, что нам нужно здесь.

Для составления наших данных мы сделаем два прохода. Первый будет отображать линии и пустые круги (для всех точек), а второй будет отображать заполненные круги (только для точек, которые должны быть заполнены - перезапись пустых кругов).

plot datafile u 1:2 with linespoints pt 6, \ 
    datafile u 1:($3==1?$2:1/0) with points pt 7 lt 1 

Эта команда сначала построит линии и пустые круги. Затем он заполняет заполненные круги только тогда, когда они необходимы. Для этого он вычисляет условную y-координату. Если третий столбец равен 1, он использует второй столбец в качестве y-координаты. Если нет, используется недопустимое значение 1/0, что приводит к тому, что gnuplot пропускает точку. Чтобы сохранить цвета и все остальное одинаковыми, мы используем lt 1 (который использовался по умолчанию в первом сегменте команды графика).

enter image description here

Примечание: я поставил в запросе признака для pointtype variable варианта, и похоже, что он может работать свой путь в будущую версию. Имеется предварительный патч, который реализуется под номером feature request 437.

Обновлено Примечание: Опция pointtype variable в настоящее время доступна в версии для разработки gnuplot.