Экосистема JuliaPlots
Plots хорош сам по себе, но настоящую силу ему придает окружающая его экосистема. Задача Plots (и, в частности, RecipesBase) состоит в том, чтобы объединить разрозненные функциональные возможности в единое и согласованное пользовательское взаимодействие. Некоторые пакеты можно использовать для реализации шаблонов для визуализации пользовательских типов. Другие могут расширять функциональность Plots для типов Base. На этой странице я попытаюсь собрать и показать ряд задач, которые вы можете выполнить, используя экосистему, сложившуюся вокруг ядра Plots.
Организация JuliaPlots создает и поддерживает большую часть часто используемой функциональности, внешней по отношению к ядру Plots, а также RecipesBase, PlotUtils, документацию и многое другое.
Пакеты сообщества
AtariAlgos
AtariAlgos.jl
эмулирует платформу ArcadeLearningEnvironment как реализацию AbstractEnvironment из интерфейса Reinforce. Поэтому ее можно использовать в качестве готового к работе модуля с общими агентами обучения с подкреплением.
С помощью Plots.jl можно также строить игры, что позволяет использовать их в качестве компонента более сложных визуализаций для отслеживания хода обучения и т. д. Этот пакет также упрощает создание анимаций.
![8923a2f6 62e2 11e6 943f bd0a2a7b5c1f](https://cloud.githubusercontent.com/assets/933338/17670982/8923a2f6-62e2-11e6-943f-bd0a2a7b5c1f.gif)
Reinforce
Reinforce.jl
является интерфейсом для обучения с подкреплением. Он предназначен для соединения модульных сред, политик и решателей с помощью простого интерфейса.
![f3e18414 63a0 11e6 9f9e f531278216f9](https://cloud.githubusercontent.com/assets/933338/17703784/f3e18414-63a0-11e6-9f9e-f531278216f9.gif)
Augmentor
Augmentor.jl
— это библиотека увеличения изображений, призванная сделать процесс искусственного увеличения массива данных более удобным, менее подверженным ошибкам и более простым для воспроизведения. Для этого используются конвейеры вероятностного преобразования.
![3894d2b0 61b6 11e6 8b10 1cb5139bfb6d](https://cloud.githubusercontent.com/assets/10854026/17645973/3894d2b0-61b6-11e6-8b10-1cb5139bfb6d.gif)
DifferentialEquations
DifferentialEquations.jl
представляет собой пакет для численного решения дифференциальных уравнений на языке Julia, разработанный Крисом Ракаукасом (Chris Rackauckas). Цель данного пакета — предоставить эффективные реализации Julia решателей для различных дифференциальных уравнений. К уравнениям, входящим в сферу применения данного пакета, относятся обыкновенные дифференциальные уравнения (ОДУ), стохастические обыкновенные дифференциальные уравнения (СОДУ или СДУ), стохастические дифференциальные уравнения в частных производных, дифференциальные уравнения в частных производных (как с использованием метода конечных разностей, так и метода конечных элементов), дифференциально-алгебраические уравнения и дифференциальные уравнения с запаздыванием. В пакет включены хорошо оптимизированные реализации классических алгоритмов и алгоритмы из последних исследований, в том числе алгоритмы, оптимизированные для высокоточных и высокопроизводительных приложений.
Все решатели возвращают объекты решения, в которых заданы шаблоны графиков для получения информативных графиков по умолчанию.
![diffeq](https://cloud.githubusercontent.com/assets/1814174/17526562/9daa2d1e-5e1c-11e6-9f21-fda6f49f6833.png)
PhyloTrees
Пакет PhyloTrees.jl
обеспечивает представление типов филогенетических деревьев. Для филогенетических деревьев также доступны функции моделирования, вывода и визуализации. Шаблоны графиков позволяют изображать структуру филогенетических деревьев с помощью бэкенда, предпочитаемого пользователем.
![a25374fc 608c 11e6 9160 32466b094f0b](https://cloud.githubusercontent.com/assets/5422422/17630286/a25374fc-608c-11e6-9160-32466b094f0b.png)
ImplicitEquations
В статье Таппера (Tupper) представлен метод построения графиков двухмерных неявных уравнений и неравенств. В данном пакете приводится реализация основных приведенных в статье алгоритмов, позволяющих пользователю Julia естественным образом представлять и легко отрисовывать графики неявных функций и уравнений.
ControlSystems
Инструментарий проектирования систем управления для Julia. Этот инструментарий работает аналогично другим основным средствам автоматизированного проектирования систем управления (CACSD). Системы могут быть созданы как в виде функции передачи, так и в виде представления пространства состояний. Затем эти системы могут быть объединены в более крупные архитектуры, смоделированы во временной и частотной областях и проанализированы на предмет устойчивости/производительности.
ValueHistories
Пакет программ для эффективного отслеживания истории оптимизации, кривых обучения или другой информации произвольного типа и с произвольным интервалом времени выборки.
![58461c20 5e2a 11e6 94d4 b4699c63ab1a](https://cloud.githubusercontent.com/assets/10854026/17512899/58461c20-5e2a-11e6-94d4-b4699c63ab1a.png)
ApproxFun
ApproxFun.jl
— пакет для аппроксимирующих функций. Большое влияние на него оказали пакет Matlab Chebfun и пакет Mathematica RHPackage.
![extrema](https://raw.githubusercontent.com/ApproxFun/ApproxFun.jl/master/images/extrema.png)
LazySets
LazySets.jl
является пакетом Julia для вычисления с выпуклыми множествами. Принцип LazySets заключается в том, чтобы заключить вычисления с множествами в специализированные типы, откладывая определение результата выражения до тех пор, пока в этом не возникнет необходимость. Сочетание отложенных операций в больших размерностях и явных вычислений в низких размерностях позволяет применять библиотеку для решения сложных задач большой размерности.
График достижимости двухрежимной гибридной системы:
![hybrid2d](https://raw.githubusercontent.com/JuliaReach/JuliaReach-website/master/src/images/hybrid2d.png)
И многие другие:
-
Losses.jl
-
IterativeSolvers.jl
-
SymPy.jl
-
OnlineStats.jl
-
Robotlib.jl
-
JWAS.jl
-
QuantEcon.jl
-
Reinforce.jl
-
Optim.jl
-
Transformations.jl
/Flow.jl
-
…