自動對齊 pgfplots 中的 104 個子圖

自動對齊 pgfplots 中的 104 個子圖

我使用Matlab2tikz它產生了一個包含 104 個以非常具體的方式對齊的子圖的檔案。然後我插入\pgfplotsset{yticklabel style={text width=2em,align=right},}、編譯並獲得了最終的PDF,效果很好,只是子圖的排列仍然不令人滿意:

在此輸入影像描述

我正在嘗試更好地組織子圖,以便:

  1. 會有相同的垂直間距,
  2. ylabels每個子圖只有兩個

是否有可能做到這一點,而不必修改每一個addplot

更新: 使用提出的解決方案斯特凡·平諾,我發現順序還是錯的。這是因為產生的 *.tikz 檔案從底行的第二個子圖(從左起)開始,並定位在與其相關的子圖之後。這當然使用了結果圖groupplot完全錯誤的。因此,我認為我有義務堅持axis環境,並打球以yticklabels提高間距。

知道如何自動修復yticklabels每個子圖三個嗎?

答案1

  1. 我認為實現這一點的最簡單(一致)的方法是使用groupplots庫(看看PGFPlots 手冊第 428ff 頁的 5.8 節(v1.13 中)
  2. 由於你沒有具體指定什麼您需要“兩個 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}

顯示上述程式碼結果的圖像

相關內容