Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

Новая версия статьи про рисование трехмерных поверхностей в Matplotlib

Всем привет! На прошлой неделе я писал о том, что начал обновлять статьи про рисование графиков на Python с помощью библиотеки Matplotlib, поскольку с момента их написания в библиотеке Matplotlib многое поменялось. Следующей на очереди для исправления у меня была статья про рисование трехмерных графиков (поверхностей). В первую очередь я планировал переписать примеры, где используются устаревшие функции, и обновить скриншоты, но что-то я увлекся и не только практически полностью переписал статью, но еще и добавил в нее новые примеры. Например, теперь в ней говорится о том, как выставлять точку наблюдения и перемещать источник света, а заодно описал несколько способов прореживания данных при рисовании. И даже старые примеры кода полностью переписал.

Пример картинки из статьи:

PS. Обо всех изменениях на сайте вы можете следить не только через RSS, но еще и подписавшись на Telegram-канал или группу Вконтакте.

Начал обновлять статьи про Matplotlib

Начал обновлять статьи про Matplotlib

Всем привет!

Как вы, надеюсь, помните, я когда-то писал (и надеюсь скоро продолжу) серию статей про работу с библиотекой Matplotlib, которая предназначена для построения графиков на языке Python. Эта серия началась очень давно, и с того момента библиотека Matpotlib сильно изменилась, как внешне, так и внутри. После глобального редизайна внешний вид графиков уже не соответствует тому, что показано на скриншотах, некоторые функции стали считаться устаревшими и были заменены новыми, часть из них даже уже была удалена из библиотеки, что сделало примеры из некоторых статей нерабочими, а часть из них еще работает, но выводят предупреждения.

Пришло время просмотреть эти статьи, проверить примеры, где-то их переписать, а также поменять все скриншоты. Этот процесс достаточно нудный и не очень быстрый, но я начал это делать.

Сегодня я обновил две статьи: самую первую статью про рисование простейших графиков вида y = f(x) (ссылка) и статью про рисование круговых графиков в виде пирога (ссылка). Вторая статья подверглась большему изменению. Во-первых, в новых версиях Matplotlib была исправлена проблема, из-за которой график по умолчанию рисовался не круглым, а эллиптическим, и соотношение сторон эллипса зависело от соотношения сторон окна, поэтому один из разделов стал не актуальным и я его удалил. А, во-вторых, с новым дизайном захотелось добавить пример, показывающий, как изменять цвета линий вокруг секторов в круговом графике.

Постепенно буду исправлять и другие статьи, а заодно себе написал план по новым статьям про Matplotlib.

Вторая часть статьи про создание Python bindings с помощью SIP

Вторая часть статьи про создание Python bindings с помощью SIP

Как и обещал в прошлом посте, сегодня выложил вторую часть статьи, посвященной созданию Python-обвязок (bindings) с помощью утилиты SIP. Во второй части речь идет о создании обвязки для объектно-ориентированных библиотек, написанных на C++, в которых фигурируют классы.

Ссылка на статью — Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 2

Новая статья в разделе про Python

Новая статья в разделе про Python

Всем привет!
Python — замечательный язык программирования, но иногда приходится работать с библиотеками, которые написаны на других языках программирования. Обычно это бывает, потому сторонние библиотеки решают нужные вам задачи, и не хочется изобретать велосипед, реализую то же самое на Python. Либо в более редких случаях, когда производительность вашего приложения упирается в особенности языка Python (все-таки интерпретируемые языки по скорости не сравнятся с компилируемыми), и часть кода приходится писать на C или C++.

Для решения такой задачи — использования библиотек, написанных на C/C++, из Python-приложения существует много решений. Одно из них — SIP. Эта утилита изначально разрабатывалась для создания Python-обвязки над такой монстроидальной библиотекой как Qt (получившаяся обвязка — PyQt). Я написал большую статью в двух частях про использование основы использования SIP для создания Python-обвязок над библиотеками. Сегодня я выложил первую часть — Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1.

Чуть позже выложу продолжение.

Статья «Использование библиотеки Matplotlib. Как делать анимированные графики»

Статья "Использование библиотеки Matplotlib. Как делать анимированные графики"

Давно я не ничего писал про библиотеку Matplotlib. Для тех, кто не знает, эта библиотека для языка Python, предназначенная для рисования огромного количества графиков.
Как-то в комментариях мне написали, что один пример не работает. Как оказалось, он действительно сломался после обновления библиотеки Matplotlib. Но вместо того, чтобы просто починить пример (надо было добавить одну строчку) я решил написать более развернутую статью на ту же тему.

В новой версии статьи приводится четыре способа создания анимированных графиков.

Ссылка на статью — Использование библиотеки Matplotlib. Как делать анимированные графики.

О книге «Элегантный SciPy»

Приятно, что в последнее время появляется много книг не просто о языке Python, но и о применении его в более узких областях. Меня в первую очередь интересуют инженерные расчеты, в которых практически стандартом являются библиотеки Numpy, SciPy и Matplotlib. На эту тему мне попадалось несколько книжек, но, к сожалению, все они страдают одной проблемой — после них нельзя сказать, что ты знаешь, например, Numpy.

Недавно я дочитал еще одну книгу сразу трех авторов: Хуана Нуньеса-Иглесиаса, Штефана ван дер Уолта и Харриет Дэшноу «Элегантный SciPy», которая посвящена научным расчетам на языке Python. К сожалению, и она страдает той же проблемой, что и другие известные мне книги, но хочется про нее все-таки рассказать.

Читать далее ‘О книге «Элегантный SciPy»’ »

Книга «Разработка веб-приложений с использованием Flask на языке Python»

Если говорить о веб-разработке на Python, то в первую очередь вспоминается веб-фреймворк Django, на основе которого создано огромное количество как небольших сайтов, а также таких монстров как Instagram, сайт Mozilla, Bitbucket и множество других. Django хорош тем, что к нему «прилагаются батарейки», т.е. в библиотеку входит большое количество инструментов, которые могут понадобиться для построения движка сайтов разных типов — это пакеты для работы с базой данных, для создания профилей пользователей и их авторизации, для создания форм по объектом данных и т.д. Это удобно, но из-за этого сам фреймворк становится достаточно тяжелый, а при его обновлении каждый раз что-нибудь ломается. К тому же, если вас не устраивает какая-то часть фреймворка, то заменить ее на аналог может быть тяжело.

В противоположность тяжеловесному Django был создан микрофреймворк Flask, пропагандирующий противоположный подход — сам Flask является очень минималистичным, а многие возможности в него добавляются с помощью расширений. Если вас не устраивает одно расширение, вы можете его заменить на аналогичное другое. Обновление используемых библиотек поэтому тоже теоретически должно проходить более гладко.

Я был приятно удивлен, узнав, что 2016 году была переведена книга Мигеля Гринберга «Flask Web Development», которая на русском языке стала называться «Разработка веб-приложений с использованием Flask на языке Python».

Читать далее ‘Книга «Разработка веб-приложений с использованием Flask на языке Python»’ »

Третий доклад на Moscow Python Meetup

Месяц назад я выступил на ежемесячной московской конференции программистов на Python — Moscow Python Meetup. Это уже третий доклад, который я делал на этой конференции — два предыдущих были в прошлом году (первый и второй). В этот раз я рассказывал о том, как работает сборка OutWiker. Не знаю как для всех остальных, но для меня этот доклад оказался особенно полезным, потому что после него подсказали интересные идеи и новости, а ещё на этой конференции мы развиртуализировались с Владимиром Тубольцевым, который в последнее время много интересного сделал для OutWiker-а.

Что касается комментариев и вопросов к докладу. Меня почти убедили, что для сборки можно использовать Docker вместо виртуальных машин. До сих пор мне казалось, что если нужно делать сборки для 32- и 64-хбитных процессоров, то Docker здесь не поможет. После доклада меня заверили, что все будет OK, так что можно будет попробовать.

Путаница произошла с версиями Fabric. Дело в том, что изначально OutWiker использовал Fabric 1, который работает только под Python 2.x, но после перехода на Python 3 оказалось, что есть версия Fabric, работающая под Python 3.x — Fabric 3. А буквально за полторы недели до доклада внезапно вышла новая версия Fabric — Fabric 2 с полностью переработанным API, поэтому то, что я рассказывал в докладе и в статье уже устарело, поскольку новый API был переделан полностью, и от старого Fabric мало что осталось. Поэтому скорее всего один из вопросов на видео был про Fabric 2, но я этого не понял. Теперь с версиями Fabric полная чехарда — версия 2 новее версии 3.

А теперь видео доклада:

Читать далее ‘Третий доклад на Moscow Python Meetup’ »

Еще один доклад на Moscow Python Meetup

Недавно сделал еще один доклад на конференции Moscow Python Meetup, которая проходила в Яндексе. Этот доклад был посвящен созданию запускаемых файлов (exe-шников) из скриптов на Python и продолжал тему доклада про создание настольных приложений на Python. Доклад родился из статьи про создание запускаемых файлов с помощью библиотеки cx_Freeze, но в доклад включил еще упоминание про pyInstaller — аналог cx_Freeze.

Что-то в этот раз я сильно волновался. Видео включает в себя все три доклада конференции, мое выступление начинается примерно с 32-й минуты.

Статья про создание exe-шников из python-скриптов

Написал большую статью про создание запускаемых файлов (.exe, если говорить про Windows) из скриптов на Python с помощью библиотеки cx_Freeze. Ссылка на статью — https://jenyay.net/Programming/Cxfreeze