garrapatas bajo tikz

garrapatas bajo tikz

Ahí está mi código mínimo.

\documentclass[a4paper,11pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{float,caption}
\usepackage{microtype}
\usepackage{bbold}
\usepackage{tikz}
\usepackage{subfig}
\usepackage{pgfplots,pgfplotstable}

\pgfplotstableread{
x         y    error
-4.0  0.0296647842303  0.0291503887869
-3.0  0.0293603640735  0.0141878426016
-2.0  0.0286685720323  0.00649661240084
-1.0  0.0275361528438  0.00210364869319
2.0  0.0266314574388  0.00148277554508
3.0  0.0277962098809  0.00421008334229
4.0  0.0291488821404  0.00849079074145
}{\exp}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-4.5,
    xmax=4.5,
    ymin=0,
    ymax=0.06,
    axis background/.style={fill=white},
    ylabel=$\delta(q)$,
    xlabel=moment $q$,
    legend columns=3,
    yticklabels={,,}
 ]
 \addplot[color=green,thin,error bars/.cd,y dir=both, y explicit] table[x=x,y=y,y error=error]  {\exp};     
 \end{axis} 
 \end{tikzpicture}
 \end{document}

y ahí está mi figura

ingrese la descripción de la imagen aquí

Quiero modificar dos cosas en esta figura: (1) primero (y la más importante) no quiero este pseudo tick "10^-2" en la parte superior de la figura, me gustaría tener números decimales (0,002, 0,004, 0,006) como ylabel. (2) en segundo lugar (esto es menos importante) me gustaría tener una barra de error sólo para x=-4 y x=4 (por ejemplo).

Respuesta1

Observe en los comentarios que si hubiera hecho cualquiera de las preguntas individuales (o ambas en publicaciones separadas), lo más probable es que hubiera obtenido respuestas a sus preguntas el día que las hizo.

Para el primer problema, utilice scaled y ticks=false. Esto es necesario porque pones a cero la marca.etiquetascon yticklabels={,,}(preferiría yticklabels=\empty, por cierto: funcionará independientemente de cuántos ticks haya en la trama), pero los ticks en sí todavía están colocados, lo que significa que la escala puede estar vigente.

Si desea que las marcas desaparezcan, simplemente úselas ytick=emptyen lugar de scaled y ticks=false,yticklabels={,,}.

Para las barras de error, la solución rápida y sucia es eliminar las entradas no deseadas de la tabla. Pero supongo que su caso de uso real tiene muchas más entradas. Podemos crear una nueva columna (llamada error-proc) en la tabla \expcon

\pgfplotstablecreatecol[
  <assignments>
]
{error-proc}{\exp}

La <assignments>parte aquí se centra en tomar solo la primera y la última fila errory copiar solo estos elementos en nuestra nueva columna error-proc:

\pgfplotstablecreatecol[
  create col/assign first/.code={%
    \getthisrow{error}\entry
    \pgfkeyslet{/pgfplots/table/create col/next content}\entry
  },
  create col/assign last/.code={%
    \getthisrow{error}\entry
    \pgfkeyslet{/pgfplots/table/create col/next content}\entry
  },
]
{error-proc}{\exp}

Luego simplemente cambie y error=errora y error=error-procsu \addplotcomando:

\documentclass{standalone}
\usepackage{pgfplots,pgfplotstable}
\pgfplotsset{compat=1.12}

\pgfplotstableread{
x     y                error
-4.0  0.0296647842303  0.0291503887869
-3.0  0.0293603640735  0.0141878426016
-2.0  0.0286685720323  0.00649661240084
-1.0  0.0275361528438  0.00210364869319
 2.0  0.0266314574388  0.00148277554508
 3.0  0.0277962098809  0.00421008334229
 4.0  0.0291488821404  0.00849079074145
}{\exp}
\pgfplotstablecreatecol[
  create col/assign first/.code={%
    \getthisrow{error}\entry
    \pgfkeyslet{/pgfplots/table/create col/next content}\entry
  },
  create col/assign last/.code={%
    \getthisrow{error}\entry
    \pgfkeyslet{/pgfplots/table/create col/next content}\entry
  },
]
{error-proc}{\exp}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  xmin=-4.5,
  xmax=4.5,
  ymin=0,
  ymax=0.06,
  axis background/.style={fill=white},
  ylabel=$\delta(q)$,
  xlabel=moment $q$,
  yticklabels=\empty,
  scaled y ticks=false,
]
\addplot[error bars/.cd,y dir=both, y explicit] table[x=x,y=y,y error=error-proc]  {\exp};
\end{axis} 
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada