Ragazzi, la filosofia del bug a confronto di feature mi lascia indifferente; è chiaro che si tratta solo di dialettica; Lorenzo sta cercando giustamente di portare esempi per i neofiti; quindi ha bisogno di dare regole semplici e intuitive.
Mi paiono giuste le annotazioni presentate, di enlarge y axis, di clip, di non mettere nulla lasciando i valori di default per gli assi, eccetera. e Lorenzo ha fatto benissimo a sollevare la questione.
Io vi propongo un altro aspetto: la chiave smooth fa un lavoro abbastanza modesto; invece di mettere samples=40 (un campione ogni 9 gradi d’angolo) provate a mettere samples=6 (un campione ogni 60 gradi): il disegno appare inaccettabilmente deformato.
Mi direte: già, con così pochi campioni che cosa pretendi?
In realtà non voglio pretendere nulla, ma mi aspetterei di più dall’algoritmo di determinazione dei nodi e dei punti di controllo delle spline, almeno la simmetria, mentre il disegno appare palesemente smooth, ma asimmetrico; se si mettono di valori di samples minori di 40 (o di 36) si migliora la simmetria ma vedono ad occhio nudo gli estremi delle varie spline che di default sono troppo tese (la concavità al centro di ogni arco è piuttosto bassa). METAFONT E METAPOST ci riuscirebbero molto meglio.
Vi mostro questo grafico dove in blu cè quanto fa pgdplots con samples=6, e due spline (corrispondenti in un certo senso a samples=3) con le quali l’approssimazione del seno non so dire se sia migliore o peggiore di quella ottenuta con samples-6, ma almeno è simmetrica e qualitativamente assomiglia di più alla funzione seno — attenzione: qualitativamente, perché con le spline abbiamo sempre approssimazioni, anche con spline di ordine uno e moltissimi punti, che danno l’interpolazione lineare). Non preoccupatevi delle coordinate strane; il comando \draw fa riferimento a coordinate assolute, senza tenere conto delle scale dei due assi coordinati.
Questo mi da un leggero sconforto; se da un lato le due spline di ordine tre descritte con le coordinate assolte, sono difficili da specificare, ma richiedono pochissimi nodi e punti di controllo per disegnare una curva del seno abbastanza bene approssimata, certamente accettabile “qualitativamente”, dall’altra pfgplots non è capace di fare altrettanto e con un numero doppio di nodi di interpolazione presenta una curva inaccettabile anche qualitativamente.
Certo il problema si risolve specificando un numero maggiore di campioni della curva, ma il mio assunto iniziale era e resta che con l’opzione smooth bastano meno punti per avere un risultato decente; certo occorrono più punti e se occorrono più punti si mette a dura prova la memoria di TeX.
Comunque valutate voi il codice seguente:
`
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ymin=-1.5,
ymax=1.5,
xmin=0,
xmax=400,
axis lines=middle]
\addplot [
domain=0:360,
samples=6,
smooth,
thick,
color=blue
]
{sin(x)};
\draw[red] (0,150) .. controls (55,279) and (125,279) .. (180,150);
\draw[red] (180,150) .. controls (235,21) and (305,21) .. (360,150);
\end{axis}
\end{tikzpicture}
\end{document}
`
e sperimentate con diversi valori di samples. Ho messo direttamente la scala delle ascisse in gradi, invece che in radianti, così i numeri, almeno per me, hanno un significato più immediato.