График плотности с логарифмической шкалой для оси z в pgfplots или tikzplotlib

График плотности с логарифмической шкалой для оси z в pgfplots или tikzplotlib

Я пытаюсь сделать 2D-график плотности в python с использованием tikzplotlib. Мне нужно иметь цветовую шкалу (и соответствующую ось z) в логарифмической шкале.

Вот пример рисунка в формате png, который я хочу получить в формате tex:

введите описание изображения здесь

Вот код, который я использую на 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")

Проблема в том, что данные слишком большие, и tikzplotlib сохраняет их как отдельный файл png, который затем загружается в 2D.tex. Но тогда они больше не находятся в логарифмической шкале.

Я провел большое количество исследований, но все ответы, которые я нашел, касаются случаев, когда график плотности определяется матрицей или функцией. У меня же вместо этого есть огромный np.array.

Буду благодарен за любую помощь.

решение1

Похоже, это ошибка в tikzplotlib, и, вероятно, ее нельзя полностью решить без более глубокого понимания модуля. В общем, как бы удобно это ни было, я не советую использовать его вдали от простых линейных графиков. Причина в том, что tikzplot склонен к ошибкам и в большинстве случаев требует ручной корректировки в сгенерированном коде. Другая причина — иметь согласованные графики с согласованной схемой, которую лучше устанавливать с помощью «чистого» LaTex/PGFPlots. Лучше всего это достигается с помощью «стилей/шаблонов», определенных в PGFPlots.

Отвечая на ваш вопрос: возможным решением будет экспорт данных и компиляция документа с помощью LuaLatex. LuaLatex не имеет ограничений по размеру, и я настоятельно рекомендую его, поскольку у него есть много других преимуществ по сравнению с pdfLaTex. Если вы хотите создать весь документ, а не только график, вам, вероятно, придется внести некоторые изменения в документ.

ВидетьКакие пакеты следует загружать с помощью LuaTex?Чтобы получить больше информации.

Надеюсь, этот ответ вам хоть немного поможет.

Связанный контент