Tornar o texto do nó visível fora do intervalo dos eixos pgfplot

Tornar o texto do nó visível fora do intervalo dos eixos pgfplot

Estou usando matlab2tikz para gerar código pgfplots .tex para criar uma figura com pdflatex. A função matlab que estou usando para criar a figura cria cada um de seus rótulos explicitamente, para que possam ser dimensionados e girados usando o seguinte código 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);

Quando investigo o código .tex convertido, vejo que o seguinte

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

representa um único rótulo de marca de escala. A sequência de texto para a qual esta linha codifica, entretanto, não aparece no .pdf resultante, provavelmente porque as coordenadas específicas estão fora dos intervalos dos eixos. Para testar isso, substituí as coordenadas dentro do intervalo, compilei e vi que o rótulo ou texto ficou visível.

Curiosamente, se eu criar a figura no matlab usando o comando view, por exemplo

view(45,45)

Consigo ver as sequências de texto que representam os rótulos dos eixos, mas o alinhamento está desativado. Em particular, as strings parecem ter um valor y que as coloca muito mais acima na figura do que eu esperava. Eu acho que o alinhamento x está ok.

As soluções que vejo podem residir no lado matlab ou no lado pgfplots/tikz. Idealmente, uma solução consistiria em um pequeno código a ser incluído no preâmbulo ou na configuração dos rótulos dos eixos. Este código permitiria texto criado com a construção:

\node[<options>] at (axis cs:x,y,z) {<text>};

a ser exibido independentemente de as coordenadas x, y, z estarem dentro do intervalo. Se as sugestões não surgirem necessariamente com facilidade, posso criar um mwe.

Responder1

Adicionar opções clip=falseao axisambiente substituirá o pgfplotscomportamento padrão de recortar qualquer coisa que apareça fora da caixa delimitadora do eixo.

Dependendo do outro código gerado, isso pode ter outros efeitos colaterais, mas na maioria dos casos tudo ficará bem.

Essa configuração de chave pode ser adicionada ao código gerado usando o recurso matlab2tikzde EXTRAAXISOPTIONS. Antes da chamada para matlab2tex, adicione

EXTRAAXISOPTIONS = {'clip=false'};

para adicionar esta opção no código gerado.

informação relacionada