Risposte nei forum create
-
AutoreRisposte
-
19 Maggio 2012 alle 10:12 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72808::
Elrond” post=73093Scusate il doppio post. Per concludere la mia riflessione sul confronto pgfplots-gnuplot, vi propongo un documento in cui ci sono due grafici realizzati usando i due diversi strumenti: quale grafico è stato realizzato con quale strumento? 🙂 Un occhio attento sicuramente troverà le differenze che permettono di distinguere i due grafici, voglio solo far vedere che è possibile ottenere con gnuplot risultati analoghi a quelli di pgfplots.
A me piacerebbe molto avere uno strumento potente come gnuplot direttamente “dentro” LaTeX (riconosco che dover scrivere uno script “esterno” a LaTeX possa essere una scocciatura, infatti speravo di poter utilizzare pgfplots per sostituire definitivamente gnuplot), però per quanto mi riguarda pgfplots non ha tutti i requisiti che mi permettono di sceglierlo come strumento predefinito per realizzare i grafici. Formulo meglio: mettendo sulla mia personale bilancia i pro e i contro di tutti e due gli strumenti risulta vincitore gnuplot. Ciò non toglie che per semplici grafici pgfplots sia uno strumento fantastico. Forse sono stato particolarmente drastico finora e non si era colto questo concetto: pgfplots non mi fa schifo, però preferisco altro.
[attachment=297]lissajous.pdf[/attachment]
Il primo è fatto con pgf, si riconosce perché è sbagliato (come abbiamo già visto nel caso del seno). Io comunque continuo a preferire pgfplots, i grafici che devo realizzare sono per lo più fatti di punti, e raramente qualche curva, comunque abbastanza semplice. Nel mio caso, realizzare il tutto all’interno di LaTeX mi permette di avere un risultato “consistente”, senza ricorrere a programmi esterni, e con una sintassi estremamente semplice. Quando mi è servito ho esportato i punti necessari con Matlab e li ho importati con pgfplots.
Ciao,
Roberto
::DirkPitt” post=72985
Lipsum non è certo obbligatorio, ma come frequentatore del forum sai che qui noi consigliamo sempre di scaricare e installare una versione di TeX COMPLETA; quella Debian non è mai completa e se va bene è sempre vecchia di almeno due anni.
Trai tu le conclusioni.si ma essendo un computer condiviso in un aula studio universitaria non è che potevo mettermi ad installare roba 🙂 ritenevo erroneamente che lipsum ci fosse anche nella versione minimale. Al solito grazie, ciao!
Rientrando in topic, se vuoi puoi provare a postare proprio il codice (quello non latex intendo) e ci do uno sguardo così sono sicuro di capire bene il problema e posso fare varie prove velocemtnte.
Ciao
Prova una delle versioni portable, la metti su una chiavetta e te la porti dove vuoi.
Ciao,
Roberto
14 Maggio 2012 alle 15:54 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72736::
Credo sia un problema di input. Infatti pgfplots si aspetta una serie di coordinate, e nella prima riga c’è “0 -Zeta(1/2)”. Se dai
`
\addplot [
unbounded coords=jump,
thick,
color=blue
]
file[skip first] {zeta.txt};
`
dovrebbe compilare senza problemi (ovviamente mancherà un punto).Ciao,
Roberto
::
Pensavo che avessi dichiarato quella colormap da qualche altra parte, e quindi la commentavo prima di compilare. In pratica la chiave “colormap/new” (capitolo 4.6.6 del manuale) dice a pgfplots di usare una colormap di nome “new”, siccome non è una mappa standard, lui si aspetta che tu l’abbia dichiarata in precedenza; visto che tu non hai dichiarato nessuna mappa “new” pgfplots semplicemente ignora la chiamata, anche se è comunque qualcosa che può dare problemi, quindi togli quella chiave.
::
Non so se sia possibile aggiungere le etichette su tutti gli assi, puoi provare a dare gli assi separatamente, come suggerito nel capitolo 4.8.10 del manuale, ovviamente utilizzando gli stessi tick per i due assi.Il comando era “axis line on top”, era stato dato apposta per evitare che la griglia si sovrapponesse al grafico. In pratica quando pgfplots disegna gli assi, disegna tutto assieme: assi, tick e griglia. Ergo se dai l’opzione “axis on top” lui disegnerà tutto al di sopra del grafico. Se scrivi
`\makeatletter \newcommand{\pgfplotsdrawaxis}{\pgfplots@draw@axis} \makeatother
\pgfplotsset{axis line on top/.style={
axis on top=false,
after end axis/.code={
\pgfplotsset{axis line style=opaque,
ticklabel style=opaque,
tick style=opaque,
grid=none}
\pgfplotsdrawaxis}
}
}`
dopo \begin{tikzpicture} e prima prima di \begin{axis} e passi ad axis la chiave “axis line on top”, avrai che la griglia verrà disegnata prima, mentre assi e tick verranno disegnati dopo il grafico.Per avere una linea verticale ti basta dare “\addplot+ coordinates {(0,0) — (0,6)};” che darai prima o dopo gli altri addplot a seconda chi vuoi venga disegnato per prima.
Per sostituire i valori della colorbar “point meta min” e “point meta max”, capitolo 4.7 del manuale.
::
Puoi risolvere plottando due volte, una prima volta l’area e una seconda volta la linea.
`
\addplot gnuplot[shading=stefan,color=black,shader=interp,id=DoG,samples=1000,domain=-0.3:0.3,y domain=0:1]{((1/(sqrt(2*pi*0.00570275999999999)))*exp(-(x-0)**2/(2*0.00570275999999999)))}\closedcycle;
\addplot+ gnuplot[mesh,point meta=x,id=DoG,samples=1000,domain=-0.3:0.3,y domain=0:1]{((1/(sqrt(2*pi*0.00570275999999999)))*exp(-(x-0)**2/(2*0.00570275999999999)))}\closedcycle;
`
E’ molto più lento in fase di compilazione, ma non sono riuscito a dare il contorno dello stesso colore o a far sparire la linea.Provo adesso ad anticiparti 😉 , e ti dico che se vuoi plottare gli assi al di sopra del grafico puoi fare così
`
\makeatletter \newcommand{\pgfplotsdrawaxis}{\pgfplots@draw@axis} \makeatother
\pgfplotsset{axis line on top/.style={
axis on top=false,
after end axis/.code={
\pgfplotsset{axis line style=opaque,
ticklabel style=opaque,
tick style=opaque,
grid=none}
\pgfplotsdrawaxis}
}
}
`e dare così la chiave “axis line on top” ad axis.
Trucchetto copiato da questa discussione.Ciao,
Roberto
::
Allora, per quanto riguarda la colorazione dell’area ti rimando a questa discussione, ti suggerisco di andare per gradi e iniziare prima a modificare la colormap e poi a cambiare la curva (purtroppo non ho il tempo di mettere insieme un EMC).
In questo ti può anche aiutare il pgf manual al capitolo 83.2 (:eek: ).
Puoi mostrare la colormap al di sotto dell’asse x dando la chiave “colormap horizontal” ad axis.
Per eliminare i punti neri il problema mi sembra essere “every mark/.append style={solid}”, se proprio ti serve darla in generale puoi pensare di passare la chiave “no markers” ad axis.Ciao,
Roberto
10 Maggio 2012 alle 10:23 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72716::
Credo che l’asimmetria sia dovuta al numero pari di samples, che invece dovrebbero essere in numero dispari. In tal caso i due grafici sono simmetrici, anche se per avere un risultato decente ci vogliono almeno 11 punti. Di default i punti sono 25, che per un diagramma di questo genere bastano e avanzano, iniziano a diventare pochi quando si visualizzano più periodi.
10 Maggio 2012 alle 9:07 in risposta a: Il disegno programmato nell’Arte di scrivere con LaTeX #72713::lorenzo.pantieri” post=72686Grazie mille ragazzi! Ho trovato che “enlarge y limits” non funziona, mentre “clip=false” sì. Provare per credere:
`\begin{tikzpicture}
\begin{axis}[
enlarge y limits,
axis lines=middle]
\addplot [
domain=0:2*pi,
samples=40,
smooth,
thick,
color=blue
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}`
`\begin{tikzpicture}
\begin{axis}[
clip=false,
axis lines=middle]
\addplot [
domain=0:2*pi,
samples=40,
smooth,
thick,
color=blue
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}`
Domanda: esiste un’opzione per far sì che la curva non vada a sbattere sulla freccia delle x?Grazie,
L.Per quanto riguarda la prima domanda, “axis=middle” sovrascrive l’opzione enlarge y limits, che quindi va data dopo. Al solito, l’ordine è importante e io sono estremamente disordinato 😛 . Invertine la posizione e tutto si risolve.
Per quanto riguarda la seconda domanda, puoi risolvere con “enlarge x limits”, oppure accorpare i due “enlarge” con la chiave “enlargelimits”.Ciao,
Roberto
-
AutoreRisposte