Risposte nei forum create
-
AutoreRisposte
-
::
illinguista1972″ post=73190Per il titolo sono d’accordo.
Io non del tutto. Per me “rappresentare graficamente dati” è qualcosa di piuttosto vago. Un diagramma a torta (anche se TikZ ne sconsiglia l’uso), un diagramma a barre e un istogramma sono le prime cose che mi vengono in mente quando si parla di “rappresentare graficamente dati”. Una tabella è una “rappresentazione grafica di dati”? Forse sì… Un diagramma di Eulero-Venn? Forse anche. Ma il pacchetto non tratta né di diagrammi a torta né di Euelro-Venn.
Disegnare una funzione significa “rappresentare dati”? Forse sì, ma non è la prima cosa a cui penso…
::Liverpool” post=73174D: E’ riduttivo dire che serve per disegnare “grafici di funzioni”.
R: Perché disegna funzioni, curve e superfici parametriche, grafici di dispersione, istogrammi, diagrammi ternari, carte di Smith. La definizione più completa è all’inizio del capoverso successivo: “un programma per la rappresentazione grafica di dati”.Curve e superfici parametriche sono funzioni; i grafici di dispersione sono grafici di funzione (credo); diagrammi ternari e carte di Smith sono altro, ma mi pare che si tratti di applicazioni “minoritarie”. La stessa doc. del pacchetto inizia con
pgfplots draws high quality function plots
Anche se pgfplots fa di più, la sua principale applicazione è quella di fare grafici di funzioni. Chiamare l’articolo “L’arte di rappresentare graficamente dati con LaTeX” è più corretto e mi piace: spero che sia anche chiaro per il lettore. Per esempio, un diagramma a torte è una rappresentazione grafica di dati, ma pgfplots non lo fa, e magari il lettore potrebbe essere deluso. Vediamo Tommaso.
Ciao,
L.
::Iovem” post=73178Salve a tutti,
segnalo agli autori che all’indirizzo
LORENZO PANTIERI – Arte
è presente la vecchia versione dell’Arte (marzo 2008) e non quella corrente.Colpa mia: aggiornando il sito ho pasticciato. Ora è tutto a posto, grazie per la segnalazione.
::Liverpool” post=73176Nella spiegazione di z buffer ho supposto che il quadro assonometrico si trovi all’infinito (oltre l’oggetto), però ho visto che sul mio libro di disegno esso si trova tra il punto di osservazione e l’oggetto. Concettualmente non cambia molto perché la proiezione è parallela; ma nel secondo caso, nella frase bisognerebbe sostituire “per primi” con “per ultimi” (se immaginiamo il quadro come un vetro e la proiezione sulla faccia opposta rispetto all’osservatore). Insomma, la frase potrebbe risultare ambigua. Se qualcuno se la sente di fare chiarezza…
Tieni presente che il nostro è un articolo introduttivo, i dettagli non interessano troppo al lettore. In fin dei conti, quello “z buffer=sort” è un incantesimo che fa sì che pgfplots esegua il disegno della superficie parametrica in modo corretto. Il lettore scriverà la formula magica, ed è a posto. Quindi penso che potrebbe andare qualcosa di molto vago:
l’opzione z buffer=sort fa sì che pgfplots faccia il grafico nel modo corretto.
Qualcosa di più specifico sarebbe meglio, ma senza scendere troppo in profondità.
20 Maggio 2012 alle 6:08 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72813::OldClaudio” post=73156dagli ultimi messaggi di Lorenzo, sembrerebbe che se il numero di campioni arriva 10001 (non 11000) calcolati da Mathematica, ma se sono calcolati da mathlab o da Lua e lo stesso, si supera la capacità di memoria di pgfplots anche avendo allargato la memoria di pdftex some ci ha spiegato in un altro post; Certo con 200 samples il disegno viene bene anche con pgfplots; con i 500 samples calcolati da Lua le cose vanno ancora meglio; ma il problema della saturazione della memoria non ne viene toccato.
È un punto importante: se hai un (solo) disegno con 10.001 punti, pgfplots si impalla; 10 mila punti possono sembrare un’enormità per un (solo) disegno, ma non è detto. Per esempio, se campiono la Gamma con solo mille punti il risultato lascia a desiderare, come si è visto. Quindi per avere un grafico di alta qualità può essere necessario avvicinarsi alla fatidica soglia dei 10 mila.
Una domanda: il valore di “samples” rappresenta esattamente il numero dei punti da campionare? In altre parole, chiedendo di campionare la Gamma con
`out = Table[{x, Gamma[x]}, {x, -5, 5, 0.001}] /. {ComplexInfinity -> NaN}; Export[“gamma.txt”, out, “Table”];`
è come se stessi dicendo “samples=11000”?Grazie,
L.
::Liverpool” post=73145
A proposito (del prolungamento continuo) della funzione $\exp(-1/(x^2+y^2))$, Liverpool dice che nell’origine l’imbuto deve finire “a punta”. In realtà (ho appena controllato), tutte le derivate direzionali delle funzione sono nulle nell’origine. Quindi per me il grafico va bene.
Hai ragione. Ieri andavo un po’ di fretta (anche oggi) e ho fatto i calcoli “ad occhio”. Peccato che gli occhi fossero chiusi e non ho considerato il segno meno nell’argomento. Comunque l’esempio resta pericoloso, perché abbiamo visto che pgfplots non lo sa calcolare nell’origine (ma io lo lascerei così).
Nell’origine la funzione non è definita, quindi nessuno (non solo pgfplots!) sa calcolarla. Direi di lasciare l’esempio com’è. 🙂
P.S. Tu e Tommaso lo chiamate “imbuto”, ma il nome mi sembra poco felice: c’è solo un punticino da cui il liquido potrebbe uscire… 😉
::
Visto che ci sono, propongo a Tommaso di restringere il dominio della Gamma così:
`\begin{axis}[
xmin=-5,
xmax=4,
ymin=-6,
ymax=6,
grid=major,
title={Gamma di Eulero}
]`
Infatti, con la scelta fatta per ymin e ymax, da 4 a 5 non si vede niente: i punti corrispondenti del grafico cadono fuori dal range scelto per le ordinate.P.S. nell’articolo diciamo che se si scelgono xmin e xmax occorre anche dire chi sono ymin e ymax: ho appena provato, mi sembra falso! Qualcuno può darci qualche delucidazione in merito?
::Liverpool” post=73140Sono d’accordo con @cfiandra che qualche parola in più su [tt]\addplot+[/tt] ci vorrebbe. Per esempio è fondamentale se devi disegnare delle curve tramite un ciclo e vuoi cambiarne automaticamente il colore (altrimenti vengono tutte uguali). Codice di esempio:
`
\documentclass{standalone}
\usepackage{pgfplots}\begin{document}
\begin{tikzpicture}
\begin{axis}
\foreach \m in {1,2,3}
\addplot+ [no marks]{\m*x};
\end{axis}
\end{tikzpicture}\begin{tikzpicture}
\begin{axis}
\foreach \m in {1,2,3}
\addplot [no marks]{\m*x};
\end{axis}
\end{tikzpicture}
\end{document}`
Provare per credere…Alle domande vedrò di rispondere con più calma in un altro momento.
Ricevuto. Anche se l’esempio che fai è forse un pochino “pro” per il nostro articolo.
Grazie mille ragazzi, continuate con le vostre osservazioni: rifletteremo su ciascuna di esse! 🙂
::robitex” post=73136la Gamma è una di quelle funzioni difficiline…
Sì e no. Nel senso che sarà difficile quanto vuoi, ma una volta che i calcoli li ha fatti un altro software (Mathematica, qui), per pgfplots si tratta solo di coppie di coordinate. Il fatto che il pacchetto si impalli per 11 mila coppie di coordinate non è un buonissimo segno…
Comunque ho seguito il tuo consiglio diminuendo il numero dei punti:
`out = Table[{x, Gamma[x]}, {x, -5, 5, 0.005}] /. {ComplexInfinity -> NaN}; Export[“gamma.txt”, out, “Table”];`
Ora il risultato è perfetto! Invito tutti a provare quello che succede con passo 0.001: a me viene un errore di sforamento della memoria.Ciao,
L.
::
Ecco un problema. Sto cercando di raffinare la Gamma. Il codice di Mathematica che uso è questo:
`out = Table[{x, Gamma[x]}, {x, -5, 5, 0.1}] /. {ComplexInfinity -> NaN}; Export[“gamma.txt”, out, “Table”];`
Quello di pgfplots lo trovate nell’articolo. Faccio notare che ho un mini documento che deve produrre solo la Gamma.
a) Ho provato a raffinare quello 0.1 sostituendolo con 0.01. Risultato: nessun miglioramento del grafico. 🙁
b) Ho provato a raffinare lo 0.01 sostituendolo con 0.001. Risultato: un errore di sforamento di memoria (che pure avevo aumentato rispetto a quella predefinita)! 😥
`TeX capacity exceeded, sorry [main memory size=10000000].`
La lezione che ricavo è abbastanza inquietante. pgfplots si può piantare:
a) anche solo per un disegno;
b) anche se i calcoli glieli ha già fatti qualcun altro;
c) anche se la memoria è stata aumentata.Cribbio.
Il risultato lo trovo sorprendente. Da -5 a 5 saltando di 0.001 ci sono, mi pare, 11 mila punti. Ok, sarà anche un comapionamento eccessivo per un solo grafico. Ma 11 mila punti non dovrebbero essere niente, per un Mac di due anni fa con svariati giga di RAM a disposizione… Che succede?
::
A proposito (del prolungamento continuo) della funzione $\exp(-1/(x^2+y^2))$, Liverpool dice che nell’origine l’imbuto deve finire “a punta”. In realtà (ho appena controllato), tutte le derivate direzionali delle funzione sono nulle nell’origine. Quindi per me il grafico va bene.Ad ogni modo, se si vogliono esempi meno patologici, ne ho due: uno di questi si sostituisce all’imbuto. Ma io lascerei quello che c’è, a meno che LIverpool non ci convinca che il grafico non va bene.
`\begin{tikzpicture}
\begin{axis}[
xlabel=$x$,
ylabel=$y$,
zlabel=$z$
]
\addplot3 [
samples=30,
surf,
colormap/greenyellow
]
{(x^2+y^2)/(x^2+y^2+1)};
\end{axis}
\end{tikzpicture}\begin{tikzpicture}
\begin{axis}[
xlabel=$x$,
ylabel=$y$,
zlabel=$z$
]
\addplot3 [
samples=30,
surf,
colormap/greenyellow
]
{sin(deg(x*y/5))};
\end{axis}
\end{tikzpicture}`
Ciao,
L.
19 Maggio 2012 alle 10:03 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72806::Elrond” post=73093[attachment=297]lissajous.pdf[/attachment]
E’ un gran bell’esempio. Ma basta mettere in pgfplots “samples=200” e il grafico viene reso in maniera impeccabile. Quanto a “Gnuplot (o Mathematica) contro pgfplots”, lo trovo un falso dilemma. E’ perfino ovvio che un software specializzato sia più efficiente di un programma nato per fare altro; ma i programmi si possono usare insieme, se serve. Se usa Mathematica per fare i calcoli e pgfplots per fare i grafici.
Ah, non è vero che “Mathematica ha più qualità di pgfplots”. Può essere vero che Mathematica, a parità di tempo di calcolo e di occupazione di memoria faccia un grafico migliore. Però queste risorse non sono in genere un problema: si aumenta “samples” e si ha un grafico di qualità eccellente anche in pgfplots.
Ciao,
L.
-
AutoreRisposte