Как создать логарифмический график в Excel
Логарифмический график — это диаграмма рассеяния , в которой используются логарифмические шкалы как по оси X, так и по оси Y.
Этот тип графика полезен для визуализации двух переменных, когда истинная связь между ними подчиняется степенному закону. Это явление происходит во многих областях реальной жизни, включая астрономию, биологию, химию и физику.
В этом руководстве показано, как создать логарифмический график для двух переменных в Excel.
Пример: логарифмический график в Excel
Предположим, у нас есть следующий набор данных в Excel, который показывает значения двух переменных, x и y:

Используйте следующие шаги, чтобы создать логарифмический график для этого набора данных:
Шаг 1: Создайте диаграмму рассеяния.
Выделите данные в диапазоне A2:B11 .

На верхней ленте щелкните вкладку « Вставка ». В группе « Графики » нажмите « Разброс ».

Автоматически появится следующая диаграмма рассеяния:

Шаг 2: Измените шкалу оси x на логарифмическую.
Щелкните правой кнопкой мыши значения вдоль оси x и выберите « Формат оси» .

В новом всплывающем окне установите флажок рядом с Логарифмический масштаб , чтобы изменить масштаб по оси X.

Шаг 3: Измените шкалу оси Y на логарифмическую.
Затем щелкните по оси Y и повторите тот же шаг, чтобы изменить шкалу оси Y на логарифмическую. Результирующий график будет выглядеть так:

Обратите внимание, что ось x теперь охватывает от 1 до 10, а ось y — от 1 до 1000. Также обратите внимание, что связь между переменными x и y теперь выглядит более линейной. Это указывает на то, что две переменные действительно имеют степенную зависимость.
Вы можете найти больше учебников по Excel здесь .
Графики в логарифмическом масштабе MatLab
Для построения графиков функций со значениями х и у, изменяющимися в широких пределах, нередко используются логарифмические масштабы. Рассмотрим команды, которые используются в таких случаях.
loglogx(. ) — синтаксис команды аналогичен ранее рассмотренному для функции plot(. ). Логарифмический масштаб используется для координатных осей X и У. Ниже дан пример применения данной команды:
На рис. 6.4 представлен график функции ехр(х)/х в логарифмическом масштабе. Обратите внимание на то, что командой grid on строится координатная сетка.
Неравномерное расположение линий координатной сетки указывает на логарифмический масштаб осей.
Рис. 6.4. График функции ехр(x)/x в логарифмическом масштабе
Делаем логарифмический масштаб у координатных осей
До сих пор мы с вами отображали графики в декартовой системе с линейным шагом изменения значений. Это довольно частый вариант, который используется в большинстве случаев. Но бывают функции, которые требуют логарифмического масштаба (изменения шага) по координатам.

Например, если сформировать график функции:

Если отобразить его в линейной системе координат:
import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize=(7, 4)) ax = fig.add_subplot() x = np.arange(-10*np.pi, 10*np.pi, 0.5) ax.plot(x, np.sinc(x) * np.exp( -np.abs(x/10)) ) ax.grid() plt.show()
То мелкие колебания функции на больших частотах будут не видны:

Как раз здесь может помочь логарифмический масштаб по оси ординат. Для этого достаточно воспользоваться методом semilogy(), чтобы по оси Oy откладывался логарифмический масштаб (логарифм по основанию 10) для графика:
ax.semilogy(x, np.sinc(x) * np.exp( -np.abs(x/10)) )
В результате получим следующее построение:

Видите, стало гораздо информативнее и конечному пользователю показывается больше информации о сигнале.
Аналогично, можно формировать логарифмический масштаб по оси ординат с помощью метода:
Того же самого эффекта можно добиться и с помощью прежней функции plot(), только дополнительно указать логарифмический масштаб по нужной оси. Например, так:
ax.plot(x, np.sinc(x) * np.exp( -np.abs(x/10)) ) ax.set_yscale('log')
Здесь был использован метод set_yscale() для изменения масштаба со значения ‘linear’ на значение ‘log’. По аналогии, можно изменить масштаб и для оси Ox с помощью метода set_xscale():
ax.set_xscale('log')
- ‘linear’ – линейный масштаб (используется по умолчанию);
- ‘log’ – логарифмический масштаб;
- ‘symlog’ – вблизи нуля (в указанных пределах) масштаб линейный, а в остальной области – логарифмический.
ax.set_yscale('log', base=5)

Вернемся к нашему графику. Если на него внимательно посмотреть, то по вертикали дополнительно отложены небольшие риски. Это восемь промежуточных линейных значений. Например, между значениями Откладываются риски со значениями: 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2 Мы можем управлять их отображением, указав их значения в виде целых чисел в списке параметра subs:
ax.set_yscale('log', subs=[2, 9])
Здесь мы указываем отображать риску со значением 0,2 или 0,02 или 0,002 и т.д. И риску со значениями 0,9 или 0,09 или 0,009 и т.д. Рассмотрим далее возможность использования третьего параметра ‘symlog’. Мы его пропишем для оси Ox в следующем виде:
x = np.arange(-10*np.pi, 10*np.pi, 0.1) ax.plot(x, np.sinc(x) * np.exp( -np.abs(x/10)) ) ax.set_xscale('symlog', linthresh=2)

Здесь использован дополнительный параметр linthresh, определяющий граничное значение [-2; 2], где график следует отображать в линейном масштабе. А все, что выходит за эти пределы – в логарифмическом. В результате, получим такое построение: Дополнительно линейный масштаб можно растянуть, указав масштаб в дополнительном параметре linscale:
ax.set_xscale('symlog', linthresh=2, linscale=5)

Наконец, если нам нужно установить логарифмический масштаб по обеим осям, то проще всего для этого воспользоваться функцией loglog(), вместо функции plot() или semilogx()/semilogy():
ax.loglog(x, np.sinc(x) * np.exp( -np.abs(x/10)) )

Вот так, достаточно просто можно задавать и управлять логарифмическим масштабом при отображении графиков в пакете matplotlib.
Графика в логарифмическом масштабе
На рисунке представлен график функции exp(x)/x в логарифмическом масштабе. Координатная сетка строится командой grid on.
>> x=logspace(-1,3); % Аргумент x
>> loglog(x,exp(x)./x); % По осям x и y лог масштаб
>> grid on % Добавление координатной сетки

Неравномерное расположение линий координатной сетки указывает на логарифмический масштаб осей.
Столбцовые диаграммы
Функции для построения диаграмм:
- bar(X, Y) – столбцовый график элементов массива Y в позициях, определяемых вектором X
- bar(X) – то же, но для построения используется вектор x=1:m;
- bar(X, Y, WIDTH) или bar(Y, WIDTH) – то же, но со спецификацией ширины столбцов (по умолчанию WIDTH = 0,8).
Применяются для решения задач в области финансов, экономики, математики.
Эти функции отображают данные в виде столбцов:
- bar — вертикальных,
- barh — горизонтальных.
В примере создаются два подокна, в левом использована функция bar, в правом barh
>> x = -2.9:0.2:2.9; % Аргумент х
>> Y= exp(-x.*x); % Функция Y
>> subplot(1,2,1); % Подокно 1 в первой строке
>> grid on; % Включить сетку
>> subplot(1,2,2); % Подокно 2 в первой строке
>> grid on; % Включить сетку

Гистограммы
Функция hist(y,x) – столбцовая диаграмма, показывающая число попаданий случайных у в заданный интервал х.
hist(Y) – возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически hist(y,x)
>> x = -3:0.2:3; % Вектор х
>> y= randn(1000,1); % Случайные у
>> grid on; % Включить сетку

Лестничные графики
Функция stairs отображает график по вычисленным значениям в ступенчатой форме с огибающей, представленной функцией y(x) . Между вычисленными точками рисуется горизонтальная линия.
>> x = -3:0.2:3; % Вектор х
>> stairs(x,x.^2); % График
>> grid on; % Включить сетку

Графики дискретных отсчетов функции
Функция stem отображает значения в виде столбиков, на вершине которых имеется маркер — кружок. Отображается и нулевая линия.
stem(Y) – строит график функции с ординатами в векторе Y в виде отсчетов;
stem(X, Y) – строит график отсчетов с ординатами в векторе Y и абсциссами в векторе X;
>> x=0:0.1:4; % Аргумент х
>> y=sin(x.^2).*exp(-x); % Функция у
>> grid on; % Включить сетку

График с зонами погрешности
Функция errorbar(x,y,e) рисует график с зонами погрешности. Линия е использует линию y, как ось. Зоны погрешности отображаются в вычисляемых точках и имеют вид вертикальных полосок с горизонтальными ограничителями в обе стороны линии y c высотой, равной модулю e.
В примере для пояснения действия функции errorbar в одном окне сначала рисуются исходные функции (y, e), а затем добавляется errorbar.
>> x=-2:0.1:2; % Вектор х
>> y=sin(x); % Функция y
>> e=rand(size(x))/10; % Функция e
>> errorbar(x,y,e); % Функция errorbar
