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