5.4 Usando LaTeXStrings.jl

Suporte LaTeX em Makie.jl também está disponível via LaTeXStrings.jl:

using LaTeXStrings

Casos de uso simples mostraremos abaixo (Figure 18). Um exemplo básico inclui strings LaTeX para rótulos e legendas x-y:

function LaTeX_Strings()
    x = 0:0.05:4π
    lines(x, x -> sin(3x) / (cos(x) + 2) / x; label=L"\frac{\sin(3x)}{x(\cos(x)+2)}",
        figure=(; resolution=(600, 400)), axis=(; xlabel=L"x"))
    lines!(x, x -> cos(x) / x; label=L"\cos(x)/x")
    lines!(x, x -> exp(-x); label=L"e^{-x}")
    limits!(-0.5, 13, -0.6, 1.05)
    axislegend(L"f(x)")
    current_figure()
end
with_theme(LaTeX_Strings, publication_theme())
Figure 18: Plot with LaTeX strings.

Um exemplo mais complicado será com alguma equação como texto e aumentando a numeração de legenda para curvas em um plot:

function multiple_lines()
    x = collect(0:10)
    fig = Figure(resolution=(600, 400), font="CMU Serif")
    ax = Axis(fig[1, 1], xlabel=L"x", ylabel=L"f(x,a)")
    for i = 0:10
        lines!(ax, x, i .* x; label=latexstring("$(i) x"))
    end
    axislegend(L"f(x)"; position=:lt, nbanks=2, labelsize=14)
    text!(L"f(x,a) = ax", position=(4, 80))
    fig
end
multiple_lines()
Figure 19: Multiple lines.

Mas, algumas linhas têm cores repetidas, então isso não é bom. Adicionar alguns marcadores e estilos de linha geralmente ajuda. Então, vamos fazer isso usando Cycles para esses tipos. Definir covary=true permite alternar todos os elementos juntos:

function multiple_scatters_and_lines()
    x = collect(0:10)
    cycle = Cycle([:color, :linestyle, :marker], covary=true)
    set_theme!(Lines=(cycle=cycle,), Scatter=(cycle=cycle,))
    fig = Figure(resolution=(600, 400), font="CMU Serif")
    ax = Axis(fig[1, 1], xlabel=L"x", ylabel=L"f(x,a)")
    for i in x
        lines!(ax, x, i .* x; label=latexstring("$(i) x"))
        scatter!(ax, x, i .* x; markersize=13, strokewidth=0.25,
            label=latexstring("$(i) x"))
    end
    axislegend(L"f(x)"; merge=true, position=:lt, nbanks=2, labelsize=14)
    text!(L"f(x,a) = ax", position=(4, 80))
    set_theme!() # reset to default theme
    fig
end
multiple_scatters_and_lines()
Figure 20: Multiple Scatters and Lines.

E voilà. Um plot de qualidade de publicação está aqui. O que mais podemos pedir? Bem, e quanto a diferentes cores ou paletas padrão? Em nossa próxima seção, veremos como usar novamente Cycles e conheça um pouco mais sobre eles, além de algumas palavras-chave adicionais para conseguir isso.



CC BY-NC-SA 4.0 Jose Storopoli, Rik Huijzer, Lazaro Alonso