2014-07-18 2 views
0

Ну, я пытаюсь построить матрицу, как файл данных, используя опцию pm3d следующимGnuplot - изменение тики в pm3d карте

set pm3d map 
set pm3d interpolate 0,0 
splot namefile matrix 

Я пытался загрузить изображение, но я, кажется, не имеют достаточную репутацию. Итак, проблема заключается в том, что данные поступают из логарифмических осевых x и y осей, но опция по умолчанию для разделения тиков является линейной (1, 2, 3, ...). Если я хочу перетащить тики на другой интервал, это легко, пока я сохраняю эту линейность (например: 0, 10, 20, ...). Однако я хотел бы перемасштабировать их до моего интервала данных, но логарифмически разделить (1, 10, 100, ...). Конечно, то, что я только хочу изменить, это тики, тогда как пропорция внутри сюжета остается неизменной.

Осмотревшись и оглядываясь по сторонам, я не смог найти удовлетворительного ответа. Любой намек на то, как его решить?

Спасибо!

ответ

0

Если вы хотите изменить только тики, но не масштабирование данных необходимо вручную установить тики как

set for [i=1:5] xtics add (sprintf('%.0f', 10**(i-1)) i) 
set for [i=1:5] ytics add (sprintf('%.0f', 10**(i-1)) i) 
+0

Спасибо @Christoph за ответ и извините за мою задержку на предоставление обратной связи. Ваш ответ не решает мои проблемы. Наверное, я был не очень ясен. Повторение: моя квадратная матрица имеет несколько сотен строк и столбцов. Я знаю, что является верхним значением в «оригинальных» осях, скажем, 5 · 10^7. Тогда мой вопрос: как установить тики, охватывающие все оси, логарифмически разделенные в моем диапазоне? Ie, самый левый tic равен 1, а самый правый tic равен 5 · 10^7, независимо от количества строк или столбцов, которые у меня есть. Используя ваш метод, первые 5 тиков являются «логарифмическими», но остальные все еще являются линейными. – oriol

+0

Вы можете использовать другой верхний предел для итераций, например. 'set for [i = 0: 10] ...'. Если это еще не решит вашу проблему, вы должны отправить пример изображения желаемого результата. – Christoph

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