Как создавать графики Matplotlib с логарифмическими шкалами


Часто вам может понадобиться создать графики Matplotlib с логарифмическими шкалами для одной или нескольких осей. К счастью, Matplotlib предлагает для этого следующие три функции:

  • Matplotlib.pyplot.semilogx() — построить график с логарифмическим масштабированием по оси X.
  • Matplotlib.pyplot.semilogy () — построить график с логарифмическим масштабированием по оси Y.
  • Matplotlib.pyplot.loglog() — построить график с логарифмическим масштабированием по обеим осям.

В этом руководстве объясняется, как использовать каждую из этих функций на практике.

Пример 1: Логарифмическая шкала для оси X

Предположим, мы создаем линейную диаграмму для следующих данных:

import matplotlib.pyplot as plt

#create data
x = [1, 8, 190, 1400, 6500] 
y = [1, 2, 3, 4, 5]

#create line chart of data
plt.plot (x,y)

Мы можем использовать функцию .semilogx() для преобразования оси x в логарифмическую шкалу:

plt.semilogx () 

Обратите внимание, что ось Y точно такая же, но ось X теперь имеет логарифмическую шкалу.

Пример 2: Логарифмическая шкала для оси Y

Предположим, мы создаем линейную диаграмму для следующих данных:

import matplotlib.pyplot as plt

#create data
x = [1, 2, 3, 4, 5]
y = [1, 8, 190, 1400, 6500]

#create line chart of data
plt.plot (x,y)

Мы можем использовать функцию .semilogy() для преобразования оси Y в логарифмическую шкалу:

plt.semilogy () 

Обратите внимание, что ось X точно такая же, но ось Y теперь имеет логарифмическую шкалу.

Пример 3: Логарифмическая шкала для обеих осей

Предположим, мы создаем линейную диаграмму для следующих данных:

import matplotlib.pyplot as plt

#create data
x = [10, 200, 3000, 40000, 500000]
y = [30, 400, 5000, 60000, 750000]

#create line chart of data
plt.plot (x,y)

Мы можем использовать функцию .loglog() для преобразования оси Y в логарифмическую шкалу:

plt.loglog (x, y) 

Обратите внимание, что обе оси теперь имеют логарифмическую шкалу.

Дополнительные ресурсы

Как изменить размер шрифта на графике Matplotlib
Как удалить тики из графиков Matplotlib