Packages graphiques#

La gestion graphique ne fait pas partie intégrante de Julia il faut faire appel à des packages extérieurs et plusieurs choix sont possibles. On peut utiliser PyPlot.jl qui consiste à utiliser matplotlib avec Julia. Makie.jl est également de plus en plus populaire avec un beau rendu graphique et un choix de “backend” plus riche. La package est un peu plus difficile à utiliser mais offre beaucoup de possibilités.

Je vous propose ici la description et utilisation du package Plots

On peut l’utiliser avec différents “backend”, PyPlot.jl ou PlotlyJS.jl

Plots#

La syntaxe est très proche de celle de MATLAB. Par défaut le “backend” est GR.jl. Pour utiliser les autres il faut les installer.

(v1.1) pkg> add Plots
(v1.1) pkg> add PlotlyJS
(v1.1) pkg> add PyPlot
using Plots 

Pour changer le “backend”, il faut exécuter l’une des fonctions suivantes

plotlyjs()

ou

pyplot()
x = LinRange(0, 4π, 100)
plot(x,sin.(x), label="y = sin(x)")
using LaTeXStrings
x = LinRange(0, 1, 100)
plot(x,sin.(10*x))
plot!(x,cos.(10*x))
title!(L"y_1 = \sin(x) \qquad y_2 = \cos(x)")
xlabel!("x")
p = plot(layout=(2,1))
plot!(p[1,1], x, sin.(x), lc = :green, linewidth = 2.0)
title!(p[1,1], "tracé 1")
plot!(p[2,1], x, x, lc = :red)
title!(p[2,1], "tracé 2")
xlabel!("x")
ylabel!("y")
ylims!(p[1,1], (0,1))
contour(rand(50,50), colobar = true, aspect_ratio = :equal, size = (300,300))
palette(:rainbow)
_images/8233ec20b9aaee9b1537cbbbe0f575ab244292c8933d5fe47465c27195195287.svg
surface(rand(50,50), palette = :rainbow)
x = LinRange(-2, 2, 21)
y = x
z = exp.(-x.^2 .- y'.^2)
contour(x, y, z, aspect_ratio = :equal)

v(x, y) = 0.1 .* [-y, x]

xs = [px for px in x for py in y]
ys = [py for px in x for py in y]

quiver!(xs, ys, quiver=v)
@gif for i in 1:50
    plot(sin, 0, i * 2pi / 10)
end when i > 30
[ Info: Saved animation to /home/pnavaro/Julia_Introduction/tmp.gif