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)
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