Python рисуем график


Matplotlib — это библиотека Python для построения качественных двухмерных графиков.
Замечание. При работе с matplotlib в Debian Wheezy возникает ошибка:
«Matplotlib KeyError ItalicAngle в Debian Wheezy»
Решение проблемы описано здесь.
Рассмотрим некоторые примеры использования matplotlib.
Пример. Построить график функции $y = x^2$ на отрезке [-10, 10] с шагом изменения аргумента 0.01.
# -- coding: utf8 -- import numpy as np import matplotlib.pyplot as plt x=np.arange(-10,10.01,0.01) #Массив значений аргумента plt.plot(x,x2) #Построение графика plt.xlabel(r'$x$') #Метка по оси x в формате TeX plt.ylabel(r'$f(x)$') #Метка по оси y в формате TeX plt.title(r'$y=x^2$') #Заголовок в формате TeX plt.grid(True) #Сетка plt.show() #Показать график
Рисунок 1.
При построении графика можно использовать третий параметр, который позволяет изменять цвет и тип графика. Значение этого параметра по умолчанию равно 'b-', что означает сплошная синяя линия. Например, на следующем рисунке точки изображаются в виде кружков зеленого цвета.
import numpy as np import matplotlib.pyplot as plt x=np.arange(-10,11,1) plt.plot(x,x2,'go') plt.show()
Рисунок 2.
Подробное описание различных стилей отображения графиков можно найти в документации.
Очень легко можно построить графики нескольких функций на одном рисунке.
import numpy as np import matplotlib.pyplot as plt x=np.arange(-10,10.01,0.01) plt.plot(x,np.sin(x),x,np.cos(x),x,-x) plt.xlabel(r'$x$') plt.ylabel(r'$f(x)$') plt.title(r'$f_1(x)=\sin(x),\ f_2(x)=\cos(x),\ f_3(x)=-x$') plt.grid(True) plt.show()
Рисунок 3.
Работа с matplotlib основана на использовании графических окон и осей (оси позволяют задать некоторую графическую область). Все построения применяются к текущим осям. Это позволяет изображать несколько графиков в одном графическом окне. По умолчанию создается одно графическое окно figure(1) и одна графическая область subplot(111) в этом окне. Команда subplot позволяет разбить графическое окно на несколько областей. Она имеет три параметра: nr; nc; np. Параметры nr и nc определяют количество строк и столбцов на которые разбивается графическая область, параметр np определяет номер текущей области (np принимает значения от 1 до nrnc). Если nrnc
import numpy as np import matplotlib.pyplot as plt x=np.arange(-10,10.01,0.01); t=np.arange(-10,11,1) #subplot 1 plt.subplot(221) plt.plot(x,np.sin(x)) plt.title(r'$\sin(x)$') plt.grid(True) #subplot 2 plt.subplot(222) plt.plot(x,np.cos(x),'g') plt.axis('equal') plt.grid(True) plt.title(r'$\cos(x)$') #subplot 3 plt.subplot(223) plt.plot(x,x2,t,t2,'ro') plt.title(r'$x^2$') #subplot 4 plt.subplot(224) plt.plot(x,x) plt.subplot(224).spines['left'].set_position('center') plt.subplot(224).spines['bottom'].set_position('center') plt.title(r'$x$') plt.show()
Рисунок 4.
Построение графика функции в полярной системе координат
import numpy as np import matplotlib.pyplot as plt plt.subplot(111, polar=True) phi = np.arange(0,2np.pi,0.01) rho = 2phi plt.plot(phi, rho, lw=2) plt.show()
Рисунок 5.
Построение графика функции, заданной параметрически
import numpy as np import matplotlib.pyplot as plt t = np.arange(0,2np.pi,0.01) r=4 plt.plot(rnp.sin(t),rnp.cos(t),lw=3) plt.axis('equal') plt.show()
Рисунок 6.
Построение графика функции двух переменных
from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt import numpy as np ax = axes3d.Axes3D(plt.figure()) i = np.arange(-1, 1, 0.01) X, Y = np.meshgrid(i, i) Z = X2-Y2 ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) plt.show()
Рисунок 7.
from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt import numpy as np ax = axes3d.Axes3D(plt.figure()) i = np.arange(-1, 1, 0.01) X, Y = np.meshgrid(i, i) Z = X2-Y2 ax.plot_surface(X, Y, Z, rstride=10, cstride=10) plt.show()
Рисунок 8.
Построение графика функции двух переменных, заданной параметрически
from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt import numpy as np ax = axes3d.Axes3D(plt.figure()) u = np.linspace(0, 2np.pi, 100) v = np.linspace(0, np.pi, 100) r=5 x = r np.outer(np.cos(u), np.sin(v)) y = r np.outer(np.sin(u), np.sin(v)) z = r np.outer(np.ones(np.size(u)), np.cos(v)) ax.plot_surface(x, y, z, rstride=4, cstride=4) plt.show()
Рисунок 9.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.


Источник: http://itnovella.ru/itnovella/2013/10/21/matplotlib.html



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Matplotlib: Научная графика в Python Python 3 для начинающих Заплетать красиво косы пошагово


Python рисуем график Python рисуем график Python рисуем график Python рисуем график Python рисуем график Python рисуем график Python рисуем график Python рисуем график

ШОКИРУЮЩИЕ НОВОСТИ