我正在嘗試使用 tikzplotlib 在 python 中製作二維密度圖。我需要在對數刻度中包含色條(和相應的 z 軸)。
這是我想要 tex 格式的 png 圖形範例:
這是我在 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 來裝載哪些包?了解更多。
希望這個回答能帶給你一點幫助。