2015-01-26 3 views
3

Gnuplot использует знак дефиса минус (U + 002D), когда он печатает отрицательные числа (например, метки метки). Я хотел бы сделать Gnuplot использовать знак unicode минус (U + 2212).Как сделать Gnuplot использовать знак «unicode минус» для отрицательных чисел

Обычно, я опирался на одно из следующих решений:

  1. Явных установить метку каждого клещ знака с помощью set xtics (-0.05 "−0.05", ...);
  2. Экспортируйте участок с использованием драйвера LaTeX (например, epslatex) и приложите его в пределах $$ (например, set format x "$%.2f$").

Однако ни одно из вышеуказанных решений не требует меня. Есть ли способ сделать Gnuplot автоматически использовать правильное типографское соглашение для отрицательных чисел?

+0

Там нет флага или возможность использовать знак unicode минус с gnuplot. – Christoph

+0

Спасибо за ответ, @ Кристоф. Я только что обнаружил, что у Matplotlib есть [флаг для этого] (http://matplotlib.org/examples/api/unicode_minus.html). Как вы думаете, есть ли вероятность, что будущие версии Gnuplot будут иметь что-то подобное? –

+0

Да, если есть запрос функции, и кто-то это реализует :) Серьезно, увидев, что для 5.0 был введен новый спецификатор формата '% h' для создания более удобного форматирования для экспоненциального обозначения, я думаю, что шансы на его получение хорошо. – Christoph

ответ

0

К сожалению, единственное «решение», что я могу найти, чтобы построить метки со значениями осей отформатированными й с использованием sprintf, вместо того, чтобы использовать xtics set format x " ":

set format x " " 
plot 'data', \ 
    'data' u 1:(0):(($1 >= 0 ? $1 : sprintf('{\055}%d', -$1))) notitle w labels offset graph 0, -0.55 

и вы должны найти символ вместо {\055} рядом с юникодом минус среди кодов символов PostScript.

Этот код предполагает, что среднее значение данных 0, затем проверяет, если значение х $1 положительна (test ? yes : no)

+1

Спасибо, Sébastien, ваше решение имеет то преимущество, что не требует от пользователя повторного ввода чисел дважды, как в моем примере. Я думаю, что это лучшее решение, доступное с учетом ограничений текущей версии Gnuplot. –

2

Начиная с версии 5.0.5 Gnuplot имеет команду set minussign. Когда это установлено, функция gprintf, которая также используется для установки тиков этикетки, использует типографские знаки минус (U+2212) вместо дефиса:

set encoding utf8 
set minussign 
plot x 

enter image description here

Смежные вопросы