Автор оригинала: Team Python Pool.
Matplotlib Log Scale С использованием различных методов в Python
Здравствуйте программисты, в сегодняшней статье мы узнаем о логарифмической шкале Matplotlib в Python. Логарифмическая шкала Matplotlib-это шкала, имеющая степени 10. Вы можете использовать любое основание, например 2, или значение натурального логарифма задается числом e. Использование различных оснований сузило бы или расширило расстояние между нанесенными элементами, что облегчило бы видимость. Мы можем использовать логарифмическую шкалу Matplotlib для построения осей, гистограмм, 3D-графиков и т. Д. Давайте рассмотрим различные примеры и реализации логарифмической шкалы.
Логарифмические шкалы-очень важный метод визуализации данных. Эта шкала позволяет нам наблюдать экспоненциальный рост системы в линейном масштабе. Например, случаи нового коронавируса растут в геометрической прогрессии, В таких случаях использование логарифмических шкал помогает проверить контроль над вирусом.
Изменение оси y на логарифмическую шкалу Matplotlib
from matplotlib import pyplot # Create a subplot to show the graph pyplot.subplot(1, 1, 1) # Powers of 10 a = [10**i for i in range(10)] # Plotting the graph pyplot.plot(a,,) # Setting a logarithmic scale for y-axis pyplot.yscale('log') pyplot.show()
Выход:
Объяснение:
Процесс построения логарифмических осей аналогичен обычному построению графика, за исключением одной строки кода, указывающей тип осей как “log”. Затем мы построим график степеней 10 против их показателей. Это линейный логарифмический график. Без логарифмической шкалы построенные данные показали бы кривую с экспоненциальным ростом. Таким образом, чтобы получить ось y в логарифмическом масштабе, нам придется передать ‘log’ в качестве аргумента pyplot.yscale(). Аналогично, вы можете применить то же самое для изменения оси x на логарифмическую шкалу с помощью pyplot.xscale(‘log’)
Логарифмическая шкала Matplotlib С использованием функций Semilogx() или Semilogy()
import pandas as pd import matplotlib.pyplot as plt x = [10, 100, 1000, 10000, 100000] y = [2, 4 ,8, 16, 32] .figure(figsize=(8, 6)) plt.scatter(x,y) plt.plot(x,y) plt.grid() plt.semilogx()) )) plt.show()
Выход:
Объяснение:
Функция semilogx()-это еще один метод создания графика с логарифмическим масштабированием вдоль оси X. В то время как функция semilogy() создает график с логарифмическим масштабированием вдоль оси Y. Основание логарифма по умолчанию равно 10. Однако мы можем установить базу с параметрами basex и basey для функций semilogx() и semilogy () соответственно. В приведенном выше примере функция plt.semilogx() с основанием по умолчанию 10 используется для изменения оси x на логарифмическую шкалу. В то время как функция plt.semilogy() изменяет ось y на базовую 2-логарифмическую шкалу.
Matplotlib Log Scale С помощью функции log log()
import pandas as pd import matplotlib.pyplot as plt x = [10, 100, 1000, 10000, 100000] y = [2, 4 ,8, 16, 32] .figure(figsize=(8, 6)) plt.scatter(x,y) plt.plot(x,y) ) plt.show()
Выход:
Объяснение:
Мы также можем реализовать масштабирование журнала по осям X и Y с помощью функции loglog(). Основание логарифма для осей X и Y задается параметрами basex и basey. В приведенном выше примере и передается как href=”https://en.wikipedia.org/wiki/Parameter_(computer_programming)#:~:text=In%20computer%20programming%2C%20a%20parameter,as%20input%20to%20the%20subroutine.”>arguments к функции plt.loglog (), которая возвращает базовое 10-логарифмическое масштабирование по оси x. И основание 2 логарифмическое масштабирование вдоль оси y. href=”https://en.wikipedia.org/wiki/Parameter_(computer_programming)#:~:text=In%20computer%20programming%2C%20a%20parameter,as%20input%20to%20the%20subroutine.”>arguments к функции plt.loglog (), которая возвращает базовое 10-логарифмическое масштабирование по оси x. И основание 2 логарифмическое масштабирование вдоль оси y.
Точечная диаграмма с логарифмической шкалой Matplotlib в Python
import matplotlib.pyplot as plt import numpy as np f,.subplots() ax.set_xscale('log') ax.set_yscale('log') ax.scatter(2**np.arange(10), 2**np.arange(10))
Выход:
Объяснение:
В приведенном выше примере оси являются первым логарифмическим масштабированием, минуя ” log ” в качестве параметра функций ser_xscale() и set_yscale (). Затем вызывается функция plt.scatter (), которая возвращает диаграмму рассеяния в логарифмическом масштабе. Поля участка огромны. Однако если метод plt.scatter() используется перед логарифмическим масштабированием осей, то точечная диаграмма выглядит нормальной.
Matplotlib log scale Гистограмма График
import pandas as pd import numpy as np import matplotlib.pyplot as plt x = [2, 1, 76, 140, 286, 267, 60, 271, 5, 13, 9, 76, 77, 6, 2, 27, 22, 1, 12, 7, 19, 81, 11, 173, 13, 7, 16, 19, 23, 197, 167, 1].Series(x) # histogram on linear scale plt.subplot(211) hist, bins,.hist(x,) # histogram on log scale. # Use non-equal bin sizes, such that they look equal on log scale..logspace(np.log10(bins[0]),np.log10(bins[-1]),len(bins)) plt.subplot(212) plt.hist(x,) plt.xscale('log') plt.show()
Выход:
Объяснение:
В приведенном выше примере график гистограммы один раз делается в нормальном масштабе. А также нанесен на логарифмическую шкалу Matplotlib. Для построения гистограммы в логарифмическом масштабе ячейки определяются как “логарифмические ячейки”. Кроме того, мы используем неравные размеры ячеек, чтобы они выглядели равными в логарифмическом масштабе. Ось x масштабируется логарифмически, минуя “log” в качестве аргумента функции plt.xscale ().
Вывод:
В этой статье мы обсудили различные способы перехода в логарифмическую шкалу с помощью логарифмической шкалы Matplotlib в Python. Мы видели различные функции для реализации масштабирования журнала по осям. Например, функции semilogx() или semilogy() и log (). Мы также приводили примеры использования логарифмической шкалы Matplotlib для построения точечных графиков и гистограмм. Обратитесь к этой статье в случае возникновения каких-либо вопросов, касающихся использования логарифмической шкалы Matplotlib.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!