Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Визуализация функций в Matplotlib
Визуализация функции f(x) состоит в том, чтобы нарисовать кривую y = f(x) в системе координат Оxy. Технически это заключается в проведении прямых линий между точками, заданными значениями функции. Чем больше точек мы берем, тем более гладкой получается кривая. Предположим, мы хотим изобразить функцию f(x) для a < x < b. Сначала мы должны задать n координат в интервале [a, b], которые мы назовем x0,x1,…,xn−1. Затем мы вычисляем yi=f(xi). Далее, если мы расположим значения xi и yi соответственно в массивах x и y, мы можем начертить график с помощью команды plot(x, y). Естественно, имена функции и аргумента могут быть другими. В нашем первом примере о графиках мы будем рисовать кривую для функции от времени t. Matplotlib Для визуализации часто применяют библиотеку Matplotlib, являющуюся аналогом средств вывода графики MATLAB. Преимущества Matplotlib следующие в том что он использует Python, а значит мы можем задействовать любую из стандартных или других доступных библиотек, он распространяется по свободной лицензии, что так важно ученым и студентам, обладающим обычно небольшим бюджетом для своих изысканий. Также как и Python, Matplotlib портируем на многие операционные системы. Для того, чтобы ознакомиться с возможностями библиотеки, достаточно заглянуть в галерею проекта. Под каждой визуализацией приводится породивший ее код, и стоит заметить как немного места он занимает в сравнении с другими языками. НАБОР ТОЧЕК
График, полученный в примере 1 Одним из больших преимуществ Matplotlib является та скорость, с которой мы можем построить график и привести первый пример: >>> import matplotlib.pyplot as plt После выполнения последней строчки, вызывается окно Matplotlib, внутри которого мы видим рисунок, показанный справа, который мы можем сохранить в удобном формате с помощью крайней правой иконки в нижней панели, например, обычном графическом формате PNG. Что же мы построили? В первой инструкции мы импортировали основной модуль библиотеки для построения графиков под именем plt, именно так наиболее часто сокращается это длинное имя. Мы не используем импортирование всех функций через *, поскольку, во-первых это долго, во-вторых сильно захламляет пространство имен. Поэтому пользуемся коротким префиксом. После того, как мы импортировали модуль, мы можем пользоваться его функциями, здесь мы использовали функцию plot(), которая собственно и строит график, а потом функция show() его нам показывает.
Аргумент, принимаемый функцией plot() это последовательность y-значений. Другой, который мы опустили, стоящий перед y — это последовательность x-значений. Поскольку его нет, генерируется для четырех указанных y, список из четырех x: [0, 1, 2, 3]. Отсюда и такой график. ФУНКЦИЯ Естественно использовать две координаты вместе и вместо списков массивы. Давайте построим график какой-нибудь сложной функции, например,: from numpy import * t = linspace(0, 3, 51) # 51 точка между 0 и 3 Как видно, код такой же ясный и простой, как полученный с помощью него график. Если функция больше нигде не используется, то можно получить еще более компактный код, задав ее сразу же после определения массива t: from numpy import * УКРАШЕНИЯ
Кроме того, чтобы просто построить кривую, было бы хорошо её назвать, обозначить оси, вывести легенду (это особенно пригодится, когда мы научимся строить несколько графиков. Кроме того, нам может захотеться изменить вид самой кривой, пределы, в которых мы ее смотрим. И все это c matplotlib, конечно, возможно: from numpy import * plt.legend() # вставка легенды (текста в label) plt.show() Кроме отмеченных новшеств, обозначенных в комментариях, в аргументах функции plot() мы видим два новых. Последний задает текст легенды графика. Строковый аргумент "g--" и ответственен за то, что изменился вид кривой. В сравнении с предыдущим примером, график позеленел (green) и вырисовывается штриховой линией. По умолчанию этот аргумент b, что и означает синюю (blue) сплошную линию. Ниже приведена таблица, которая позволяет выбрать нужный аргумент.
НЕСКОЛЬКО КРИВЫХ
Часто встречаются задачи, в которых мало визуализировать какую-то функцию, нужно и сравнить ее с другой функцией или даже несколькими. Давайте сравним уже знакомую нам функцию y(t)=t2exp(−t2) с некоторой похожей функцией, например, y(t)=t4exp(−t2). Оказывается, что для этого достаточно добавить еще одну инструкцию plot(): from numpy import * import matplotlib.pyplot as plt t = linspace(0, 3, 51) y1 = t**2*exp(-t**2) y2 = t**4*exp(-t**2) plt.plot(t, y1, label='t^2*exp(-t^2)') plt.plot(t, y2, label='t^4*exp(-t^2)') # декоративная часть plt.xlabel('t') plt.ylabel('y') plt.title('Plotting two curves in the same plot') plt.legend() plt.show() Как видно из полученного рисунка, matplotlib и без наших указаний понимает, что кривые надо обозначать разными цветами. Но если, нам захочется управлять самим, (например, при черно-белой печати разумнее использовать разный стиль линий) мы знаем как это делать. Кроме того, бывает нужно показывать не сглаженную кривую, а именно точки из этой кривой. Для этого используется синтаксис маркеров, в общем-то такой же, что и для линий. Давайте посмотрим:
from numpy import * t, y2, 'b--', # синяя штриховая 't^6*exp(-t^2)'], # список легенды loc='upper left') # положение легенды plt.show() Заметьте, что мы изменили положение легенды, иначе бы она дерзко закрывала красный график. По умолчанию легенда располагается в правом верхнем углу, но можно ее и перенести за счет аргумента loc. Этому аргументу можно присваивать и численное значение, но конечно легче воспринимается строка. В таблице ниже приводятся возможные варианты.
МАРКЕРЫ Здесь также показано как можно объединять сразу три графика в одной инструкции. Кроме того, видно, что можно не только использовать маркеры (y1) или линии(y2), но и объединять их вместе (y3). Наиболее часто в научных исследованиях и журналах приводят графики, отличаемые друг от друга именно по маркерам, поэтому и в matplotlib для их обозначения имеется множество способов:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 516; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.213.214 (0.006 с.) |