Приведение неоднородных xtics к единообразному масштабу в GNUPlot

#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, который я загрузил из своего фиктивного набора данных с моей текущей проблемой.

http://tinypic.com/r/2zfolxf/7

Комментарии:

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 отобразит его соответствующим образом.

Возможный обходной путь

Обходной путь может выглядеть следующим образом:

  1. Постройте обычный график от 2 вверх.
  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. Я понял это сам, но ваш пост сам по себе был полезным знанием. Спасибо за ответ!