Comment tracer des données approchant zéro dans le log plot pgfplots?
J'essaie de générer un tracé de journal de certaines données en utilisant pgfplots. Je l'ai surtout regardé comme je le veux, mais j'aimerais que l'intrigue montre les données continuant vers l'origine plutôt que de s'arrêter au point de x=0.05données.
J'ai essayé d'ajouter un extra ytickfor 0, et cela déforme horriblement l'apparence des choses, comme prévu. J'ai également essayé d'ajouter un "faux" point de données (pour lequel je pourrais supprimer le point (?)) À peu près au bon endroit sur l'intrigue, mais c'est fastidieux, sujet aux erreurs et [franchement] malhonnête.
J'ai fait de grands progrès avec LaTeX grâce à des recherches sur Internet. Cependant, dans ce cas, mon google-fu me fait défaut.
Comment puis-je faire en sorte que le tracé s'étende vers l'origine (alors que l'origine reste "hors écran")? Pour être clair, je voudrais que le fenêtrage x / y reste tel qu'il est - je veux juste que l'intrigue continue jusqu'au bord plutôt que de s'arrêter au point de x=0.05données.
Ce code est probablement un gâchis, alors je m'excuse à l'avance pour tout ce qui est fait ici d'une manière 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}
Réponses
Je n'ai pas le temps maintenant de dériver les paramètres de l'équation de diode 😏, mais qu'en est-il?
Vous remplacez simplement la valeur actuelle correcte par le point à $V_D=\SI{0.01}{V}$ (d'ailleurs, $v_{\scriptscriptstyle D}$ semble mieux ;-), j'ai même une macro pour cela).
Ensuite, vous corrigez manuellement la plage ( xmin=0, xmax=0.6, enlarge x limits, ymin=1e-8, ymax=4e-3) et l'intrigue (j'ai ajouté smoothmais c'est une question de goût).
La clé enlarge x limitsest utilisée pour avoir le même effet que l'axe des abscisses "étendu" que vous avez.
La partie du graphe sortant est automatiquement tronquée (regardez la description de la clé clip mode).
Évidemment, vous pouvez faire la même chose de l'autre côté (ajouter une valeur pour 0,9 V, par exemple).
\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}