
我使用Matlab2tikz
它產生了一個包含 104 個以非常具體的方式對齊的子圖的檔案。然後我插入\pgfplotsset{yticklabel style={text width=2em,align=right},}
、編譯並獲得了最終的PDF,效果很好,只是子圖的排列仍然不令人滿意:
我正在嘗試更好地組織子圖,以便:
- 會有相同的垂直間距,
ylabels
每個子圖只有兩個
是否有可能做到這一點,而不必修改每一個addplot
?
更新:
使用提出的解決方案斯特凡·平諾,我發現順序還是錯的。這是因為產生的 *.tikz 檔案從底行的第二個子圖(從左起)開始,並定位在與其相關的子圖之後。這當然使用了結果圖groupplot
完全錯誤的。因此,我認為我有義務堅持axis
環境,並打球以yticklabels
提高間距。
知道如何自動修復yticklabels
每個子圖三個嗎?
答案1
- 我認為實現這一點的最簡單(一致)的方法是使用
groupplots
庫(看看PGFPlots 手冊第 428ff 頁的 5.8 節(v1.13 中)。 - 由於你沒有具體指定什麼您需要“兩個 ylabels”,我建議使用 鍵
max space between ticks
和來玩一下try min ticks
。其他感興趣的鍵可能是ytick
(與組合ytick distance
)或yticklabels from table
。所有這些鍵都可以\nextgroupplot
直接作為命令的可選參數給出,或者 - 如果它們應該重複本身 - 作為您可以在序言中定義的樣式。
請為groupplot
下面的環境找到一個非常簡單的範例。
\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
tiny,
/tikz/mark size=1.5pt,
group style={
group name=my plots,
group size=2 by 2,
horizontal sep=4mm, % <-- default: 1cm
vertical sep=2mm, % <-- default: 1cm
xticklabels at=edge bottom,
},
width=3cm,
height=3cm,
]
\nextgroupplot[group/empty plot]
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\nextgroupplot
\addplot coordinates{(0,0) (1,2) (2,1)};
\end{groupplot}
\end{tikzpicture}
\end{document}