Взгляните на лучший вариант Юлии для построения статистических графиков по состоянию на 2020 год.

Введение

Если вы работали с Джулией хотя бы недолго, возможно, вы знакомы с библиотекой построения графиков под названием Plots.jl. Plots.jl - это простая библиотека, которая предоставляет порты для библиотек Python, таких как Plot.ly и Matplotlib, с простыми функциональными методами, такими как plot () и scatter (). Хотя это, безусловно, отличный способ обойтись без создания совершенно новой библиотеки для использования в языке программирования Julia, он также представляет несколько проблем.

Во-первых, что наиболее важно, интерпретация Python с помощью Julia создает множество проблем с производительностью. От простого импорта Plots.jl до построения графиков - производительность с Plots.jl просто ужасна! Помимо того, что он не является Джулианом, в версии Джулии отсутствует много программного обеспечения, а многие функции полностью упускаются из виду. Хотя GR, вероятно, является наиболее многообещающим сервером для Plots.jl, ему не хватает многих замечательных функций, которые могут быть доступны вам с библиотеками Pythonic. Несмотря на это, у меня есть статья, которую вы можете прочитать, чтобы улучшить свои навыки визуализации GR с помощью Plots.jl:



Таким образом, с этими серьезными фундаментальными недостатками в Plots.jl легко понять, почему ученые искали в другом месте отличную статистическую визуализацию на языке Julia. Один из лучших вариантов, на который я смотрел, - это библиотека статистических графиков под названием

Gadfly.jl.

Прежде всего, следует отметить, что Gadfly очень похож на другую библиотеку, создателем которой я являюсь, под названием Hone.jl. Оба используют один и тот же серверный компонент Compose.jl для рисования векторной графики в Julia. На этом сходства не заканчиваются, но между ними есть много ключевых различий, таких как объектно-ориентированная и модульная методология Hone, которая совершенно не соответствует методологии Gadfly. Несмотря на это, Gadfly сам по себе использует очень интересную методологию и работает совершенно иначе, чем другие библиотеки для построения графиков, с которыми вы могли бы провести некоторое сходство.

"ноутбук"

Зачем использовать Овод?

С учетом изложенных альтернатив и часто более популярных среди пользователей Julia, почему вы можете захотеть использовать Gadfly? Во-первых, Овод - это Джулиан. Это, конечно, означает, что он не только быстр, но и хорошо подходит для языка Julia, чего нельзя сказать о его аналогах Plots.jl. Для меня это огромное преимущество, поскольку вам не только не нужно иметь дело с проблемами производительности, о которых заявляет Plots.jl, но и работать с ним становится относительно просто.

Еще одна замечательная вещь в Gadfly - это его готовая интерактивность. Сюжеты интерактивны по своей природе и сравнимы с чем-то вроде Plot.ly. Это концепция, которая обычно не встречается где-либо еще в языке Julia, поэтому она выделена жирным шрифтом и уникальна для Gadfly.

Введение в Овод

Gadfly.jl на поверхности следует простой методологии, с которой знакомо большинство пользователей Julia. Мы можем создать простой график, используя метод plot () с двумя аргументами ключевого слова, X и Y.

using Gadfly
data = Dict([:X => [5,10,32,31,51,43], :Y => [82, 33, 21, 26, 11, 22]])
plot(x=data[:X], y=data[:Y])

Здесь все немного иначе. В Gadfly есть экспортированный модуль под названием «Geom.jl.» Вместо того, чтобы использовать отдельный метод для создания линейного графика, мы можем просто использовать тот же метод только с добавленной геометрией из этого модуля.

plot(x=rand(10), y=rand(10), Geom.point, Geom.line)

Точно так же мы могли бы добавить аргумент ключевого слова цвета, чтобы изменить цвет нашей геометрии.

plot(x=data[:X], y=data[:Y], color=data[:Y])

Кроме того, мы могли бы использовать больше геометрии из модуля Geom.jl, например гистограмму:

data = Dict(:Location => ["Africa", "Europe", "Africa", "Americas", "Asia", "Europe"], 
    :Income => [29000, 83000, 56000, 76000, 52000, 46000])
plot(x=data[:Income], color=data[:Location], Geom.histogram)

Вы также можете быстро построить синтаксические результаты с помощью Gadfly, что дает такие быстрые результаты:

plot([sin, cos], 0, 25)

Вывод

Gadfly.jl - фантастическая библиотека для построения графиков, в которой используется интересный подход к проблемам, которые мы видели ранее решенными другими способами. По моему личному мнению, подход, который использует модуль, делает его лучше и намного проще в использовании, чем у многих его конкурентов. Вдобавок ко всему, он, конечно, написан на чистой Julia, что дает ему скорость и простоту использования, которые просто не имеют себе равных с аналогичными пакетами внутри языка.

В целом, я бы сказал, что если вы работаете с большим объемом данных на языке Julia, Gadfly наверняка стоит использовать Pkg.add (). Это даст вам способы просмотра данных, которые значительно улучшат ваше понимание и анализ по сравнению с тем, на что способно что-то вроде Plots.jl. Хотя я бы определенно сказал, что Plots.jl все еще может иметь свое место и, безусловно, имеет свое применение, я также хотел бы иметь в виду, что Овод полностью затмевает его как библиотеку графиков снов Джулии.