
我使用 matlab2tikz 來產生 pgfplots .tex 程式碼以使用 pdflatex 建立圖形。我用來創建圖形的 matlab 函數明確地創建了每個刻度標籤,以便可以使用以下 matlab 程式碼對它們進行縮放和旋轉:
text(x(k),y(k),labs{k},'horizontalalignment',horizk,...
'verticalalignment',vertk, ...
'rotation',rotang(k), ...
'fontsize',gfontsize*scl(k), ...
'color',gcolor, ...
'tag','m_grid_xticklabel', ...
'fontname',gfontname);
當我調查轉換後的 .tex 程式碼時,我看到以下內容
\node[below, inner sep=0mm, rotate=359.994889043193, text=black]
at (axis cs:-8.79858922562881e-07, -4.84813663392814e-06,0) {$\text{ 81}^\text{o}\text{W }$};
代表單一刻度線標籤。然而,該行程式碼的文字字串不會出現在產生的 .pdf 中,可能是因為特定座標位於軸的範圍之外。為了測試這一點,我替換了範圍內的座標,進行編譯,然後看到標籤或文字變得可見。
有趣的是,如果我使用 view 指令在 matlab 中建立圖形,例如
view(45,45)
我可以看到代表軸標籤的文字字串,但對齊方式已關閉。特別是,這些字串似乎有一個 y 值,這使得它們在圖中的位置比我預期的要高得多。我認為 x 對齊是可以的。
我看到的解決方案可能位於 matlab 端或 pgfplots/tikz 端。理想情況下,解決方案應包含一小段程式碼,包含在序言中或設定軸標籤時。此程式碼將允許使用以下結構建立文字:
\node[<options>] at (axis cs:x,y,z) {<text>};
無論座標 x、y、z 是否在範圍內,都會顯示。如果建議不容易提出,我可以創建一個 mwe。
答案1
新增clip=false
至環境選項將覆蓋剪切出現在軸邊界框之外的任何內容的axis
預設行為。pgfplots
根據其他產生的程式碼,這可能會產生其他副作用,但在大多數情況下都沒有問題。
matlab2tikz
可以使用的工具將此鍵設定新增至產生的程式碼EXTRAAXISOPTIONS
。在調用之前matlab2tex
,添加
EXTRAAXISOPTIONS = {'clip=false'};
在生成的程式碼中新增此選項。