#gnuplot #scale
#gnuplot #масштабирование
Вопрос:
У меня есть набор данных, который использует x-масштаб:
0.1 0.4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Но мне нужно, чтобы тики выстраивались равномерно, а не были загнаны в угол на 0,1 и 0,4. В настоящее время я использую,
set xtics 1
set xtics add (0.1)(0.4)
Но это пробелы 0,1 и 0,4, соответствующие остальной части масштаба. Я прикрепил ссылку на tinypic, который я загрузил из своего фиктивного набора данных с моей текущей проблемой.
Комментарии:
1. Мне не ясно, что именно вы пытаетесь сделать. Вы хотите, чтобы значения tic 0.1 и 0.4 были выровнены так, как если бы они были значениями 1 и 2, но отображались как 0.1 и 0.4? Либо уточните, что вам нужно, либо ознакомьтесь с документацией xtics здесь .
2. Я спрашиваю, есть ли способ (и если есть, то как) упорядочить масштаб по оси x так, чтобы 0,1 и 0,4 были выровнены с остальной шкалой оси. Для наглядности я хочу, чтобы 0.1 и 0.4 располагались на оси так, как если бы они были целыми числами (равномерно распределенными с остальными числами), как если бы 0.1 равнялось -1, а 0.4 равнялось 0, чтобы график начинался с «-1» (0.1, на случай, если это сбивает с толку). Единственное предостережение заключается в том, что я не могу просто изменить числа и «притвориться», что они означают 0,1 и 0,4. Мне нужно, чтобы нанесенные точки на графике также находились в этих позициях.
Ответ №1:
Текущее состояние
Насколько я знаю, вы можете сделать следующее в gnuplot с помощью tics (по крайней мере, то, что имеет отношение к вашему вопросу):
-
Вы можете указать начало, приращение и конец отображаемых тиков.
Это имело бы смысл для вас, если вы хотите просто установить tics после значения 2, напримерset xtics 2, 1
-
Еще одна вещь, которую вы можете сделать, это добавить явные метки tic к определенным значениям, таким как
set xtics add ("0.1" 0, "0.4" 1)
Это привело бы к введению меток 0.1 и 0.4 в масштаб x, где фактические значения равны 0 и 1
Однако вы не можете изменить фактическое построение графика. Если в ваших данных указано
0.1 100
0.4 150
1 200
2 300
затем gunplot отобразит его соответствующим образом.
Возможный обходной путь
Обходной путь может выглядеть следующим образом:
- Постройте обычный график от 2 вверх.
-
Проделайте некоторые хакерские действия с первыми двумя значениями с помощью этого:
plot "Data.dat" every 1::2 w l, "" every 1::1::2 using ($1<magic>):($2)
magic указывает некоторую алгебраическую операцию, которую вы хотите выполнить с первым столбцом.
Разрешено все, и если ваши значения постоянны, вы можете указать многочлен, который проходит через точки 0, 1 и 2 с входными данными 0.1, 0.4 и 1, подобными этому многочлену:
y = -1.85*x^2 4.26*x - 1.4
Пример
Предположим, у вас есть этот файл данных:
0.1 0.41
0.4 0.03
1 0.97
2 0.74
3 0.05
4 0.15
5 0.11
6 0.60
7 0.76
8 0.25
Затем вы можете «переставить» первые две записи в x-позиции -1 и 0 следующим образом:
plot "Data.dat" every 1::2 w l,
"" every 1::0::2 using (-1.85*$1**2 4.26*$1 - 1.4):($2) w l
С некоторыми настройками меток и стиля строк это должно выглядеть точно так, как вам нужно.
Я надеюсь, что я понял, что вам нужно, и что вы можете немного воспользоваться моими предложениями.
Черио
Вольтан
Комментарии:
1. Я понял это сам, но ваш пост сам по себе был полезным знанием. Спасибо за ответ!