Alinhar automaticamente a subtrama 104 em pgfplots

Alinhar automaticamente a subtrama 104 em pgfplots

Usando Matlab2tikzgerei um arquivo contendo 104 subparcelas alinhadas de uma maneira bem específica. Em seguida, inseri \pgfplotsset{yticklabel style={text width=2em,align=right},}, compilei e obtive o PDF final, o que foi bom, exceto que o arranjo das subparcelas ainda não é satisfatório:

insira a descrição da imagem aqui

Estou tentando organizar melhor as subtramas de forma que:

  1. haverá o mesmo espaçamento vertical,
  2. Apenas dois ylabelspor subtrama

Existe a possibilidade de fazer isso, sem precisar modificar cada um deles addplot?

Atualizar: Usando a solução proposta deStefan Pinnow, notei que o pedido ainda está errado. Isso ocorre porque o arquivo *.tikz gerado começou a partir da segunda subtrama (da esquerda) na linha inferior e posicionou as subparcelas seguintes em relação a ele. É claro que isso fez a figura resultante usandogroupplotcompletamente errado. Por isso, penso que sou obrigado a manter oaxisambiente e brincar com o yticklabelspara melhorar o espaçamento.

Alguma ideia de como corrigir automaticamente três yticklabelspor subtrama?

Responder1

  1. Acho que a maneira mais fácil (consistente) de implementar isso é usando a groupplotsbiblioteca (dê uma olhada emseção 5.8 do manual PGFPlots na página 428ff (em v1.13).
  2. Como você não especificou exatamenteo que"dois ylabels" que você precisa, sugiro brincar um pouco com as teclas max space between tickse try min ticks. Outras chaves de interesse poderiam ser ytick(em combinação com ytick distance) ou yticklabels from table. Todas essas chaves podem ser fornecidas diretamente como argumentos opcionais ao \nextgroupplotcomando ou - caso devam ser repetidas - como estilos que você pode definir no preâmbulo.

Encontre um exemplo realmente simples para o groupplotambiente abaixo.

\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}

imagem mostrando o resultado do código acima

informação relacionada