¿Cómo trazar datos que se acercan a cero en pgfplots log plot?
Estoy tratando de generar un diagrama de registro de algunos datos usando pgfplots. En su mayoría, lo tengo como quiero, pero me gustaría que la gráfica muestre que los datos continúan hacia el origen en lugar de detenerse en el punto de x=0.05datos.
Intenté agregar un extra ytickpara 0, y distorsiona horriblemente el aspecto de las cosas, como se esperaba. También intenté agregar un punto de datos "falso" (para el cual podría quitar el punto (?)) Aproximadamente en el lugar correcto en la trama, pero esto es tedioso, propenso a errores y [francamente] deshonesto.
He hecho grandes avances con LaTeX a través de búsquedas en Internet. Sin embargo, en este caso, mi google-fu me falla.
¿Cómo puedo hacer que la trama se extienda hacia el origen (mientras que el origen permanece "fuera de la pantalla")? Para ser claros, me gustaría que la ventana x / y permaneciera como está; solo quiero que la trama continúe hasta el borde en lugar de detenerse en el punto de x=0.05datos.
Este código probablemente sea un desastre, así que me disculpo de antemano por cualquier cosa que se haya hecho de una manera terrible.
\begin {figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={$v_D$ (\si{\volt})},
ylabel={$i_D$ (\si{\ampere})},
ytick={0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001},
yticklabels={$\SI{10}{\nano\ampere}$, $\SI{100}{\nano\ampere}$, $\SI{1}{\micro\ampere}$, $\SI{10}{\micro\ampere}$, $\SI{100}{\micro\ampere}$, $\SI{1}{\milli\ampere}$},
ymode=log,
ymajorgrids=true,
legend pos=outer north east,
]
\addplot table{
-1.000 -1.429E-08
0 0.000E+00
0.05 2.343E-08
0.10 8.547E-08
0.15 2.497E-07
0.20 6.842E-07
0.25 1.831E-06
0.30 4.843E-06
0.35 1.265E-05
0.40 3.227E-05
0.45 7.824E-05
0.50 1.726E-04
0.55 3.340E-04
0.60 5.646E-04
0.65 8.532E-04
0.70 1.210E-03
};
\addlegendentry{$i_D$}
% diagonal extension line
\addplot[mark=none, black, dotted, line width = 1] coordinates {
(0, 2E-08) (0.45,7.824E-05)
};
\end{axis}
\end{tikzpicture}
\caption{Finding $I_S$}
\label{fig:3_is}
\end {figure}
Respuestas
No tengo tiempo ahora para derivar los parámetros de la ecuación del diodo 😏, pero ¿qué pasa con esto?
Simplemente sustituya el valor actual correcto por el punto en $V_D=\SI{0.01}{V}$ (por cierto, $v_{\scriptscriptstyle D}$ se ve mejor ;-), incluso tengo una macro).
Luego, arregla manualmente el rango ( xmin=0, xmax=0.6, enlarge x limits, ymin=1e-8, ymax=4e-3) y traza (agregué, smoothpero eso es cuestión de gustos).
La clave enlarge x limitsse usa para tener el mismo efecto que el eje x "expandido" que tiene.
La parte del gráfico que sale al exterior se recorta automáticamente (mire la descripción de la clave clip mode).
Obviamente, puede hacer lo mismo en el otro lado (agregue un valor para 0.9 V, por ejemplo).
\documentclass[border=10pt]{standalone}
\usepackage{tikz, siunitx}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=0, xmax=0.7, enlarge x limits,
ymin=1e-8, ymax=4e-3,
xlabel={$v_D$ (\si{\volt})},
ylabel={$i_D$ (\si{\ampere})},
ytick={0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001},
yticklabels={$\SI{10}{\nano\ampere}$, $\SI{100}{\nano\ampere}$, $\SI{1}{\micro\ampere}$, $\SI{10}{\micro\ampere}$, $\SI{100}{\micro\ampere}$, $\SI{1}{\milli\ampere}$},
ymode=log,
ymajorgrids=true,
legend pos=outer north east,
]
% first point added semi-"randomly", substitute the correct value
\addplot+[smooth] table{
0.01 4.0E-09
0.05 2.343E-08
0.10 8.547E-08
0.15 2.497E-07
0.20 6.842E-07
0.25 1.831E-06
0.30 4.843E-06
0.35 1.265E-05
0.40 3.227E-05
0.45 7.824E-05
0.50 1.726E-04
0.55 3.340E-04
0.60 5.646E-04
0.65 8.532E-04
0.70 1.210E-03
};
\addlegendentry{$i_D$}
% diagonal extension line
% just to show that you can use TikZ normal drawing commands here
\draw[mark=none, black, dotted, line width = 1]
(0, 2E-08) -- (0.45,7.824E-05);
\end{axis}
\end{tikzpicture}
\end{document}