Gráfico de densidade com escala logarítmica para o eixo z em pgfplots ou tikzplotlib

Gráfico de densidade com escala logarítmica para o eixo z em pgfplots ou tikzplotlib

Estou tentando fazer um gráfico de densidade 2D em python usando tikzplotlib. Preciso ter a barra de cores (e o eixo z correspondente) na escala logarítmica.

Aqui está o exemplo da figura em png que desejo ter no formato tex:

insira a descrição da imagem aqui

Aqui está o código que estou usando em python:

f = figure(figsize=(16.2,12.6)) 

ax = f.add_axes([0.2, 0.02, 0.72, 0.79])

axcolor = f.add_axes([0.95, 0.05, 0.02, 0.72])

im = ax.matshow(fun(X, Y), norm=LogNorm(vmin=1e-1, vmax=1e2))

t = [1e-2, 1e-1, 1e0, 1e1, 1e2]

f.colorbar(im, cax=axcolor, ticks=t)

tikzplotlib.save("2D.tex")

O problema é que os dados são muito grandes e o tikzplotlib os salva como um arquivo png separado que é então carregado em 2D.tex. Mas então não está mais na escala logarítmica.

Pesquisei bastante, mas todas as respostas que encontrei tratam de casos em que o gráfico de densidade é definido por uma matriz ou função. Em vez disso, tenho um enorme np.array.

Ficarei grato por qualquer ajuda

Responder1

Este parece ser um bug no tikzplotlib e provavelmente não pode ser resolvido completamente sem uma compreensão mais profunda do módulo. Em geral, por mais conveniente que seja, não aconselho usá-lo fora de gráficos de linhas simples. A razão é que o tikzplot está sujeito a erros e na maioria dos casos necessita de ajustes manuais no código gerado. Outra razão é ter gráficos consistentes com um esquema consistente, que deve ser melhor definido com lotes LaTex/PGFP "puros". Isto é melhor conseguido com "estilos/modelos" definidos em PGFPlots.

Para responder sua pergunta: uma possível solução seria exportar os dados e compilar o documento com LuaLatex. LuaLatex não tem limite de tamanho e eu recomendo fortemente, pois tem muitas outras vantagens em relação ao pdfLaTex. Se você quiser criar todo o seu documento e não apenas o gráfico, provavelmente terá que fazer alguns ajustes no seu documento.

VerQuais pacotes devo carregar com LuaTex?Para maiores informações.

Espero que esta resposta o ajude um pouco.

informação relacionada