- Questo topic ha 141 risposte, 11 partecipanti ed è stato aggiornato l'ultima volta 10 anni fa da
lorenzo.pantieri.
-
CreatoreTopic
-
19 Settembre 2014 alle 11:17 #96701::
Buongiorno a tutti. Apro questo topic in cui metterò tutti i miei dubbi relativi a questo formidabile strumento. Ciò forse non è pienamente conforme alla netiquette, che vuole un topic per ogni argomento, ma il rischio in caso contrario è di inondare il forum di dubbi tutti più o meno simili. Diciamo che il tema di questo topic è TikZ, di cui faccio un uso abbastanza elementare.
`\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[font=\small,x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={ text width=8mm, text depth=1mm, text centered}]{
& $1$ & $-6$ & $11$ & $-6$ \\
$1$ & & $1$ & $-5$ & \\
& $1$ & $-5$ & & \\
};
\begin{scope}[blue]
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-5.south east);
\draw(a-1-4.north east)–(a-3-4.south east);
\end{scope}\draw[->,red] (a-2-1)–(a-3-3);
\draw[->,red] (a-3-3)–(a-2-4);
\end{tikzpicture}
\end{document}`
Il problema è nelle frecce rosse: la prima, quella che collega 1 a -5, può (forse) andare, anche se non è un gran che. La seconda, che dovrebbe collegare i due -5, proprio no. Ho provato a giocare con i punti cardinali, ma non ne sono venuto a capo. Mi aiutate?Grazie anticipate
-
CreatoreTopic
-
AutoreRisposte
-
-
19 Settembre 2014 alle 12:06 #96702::
Tipo qualcosa del genere?`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}
\begin{document}
\begin{tikzpicture}[font=\small,x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={ text width=8mm, text depth=1mm, text centered}]{
& $1$ & $-6$ & $11$ & $-6$ \\
$1$ & & $1$ & $-5$ & \\
& $1$ & $-5$ & & \\
};
\begin{scope}[blue]
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-5.south east);
\draw(a-1-4.north east)–(a-3-4.south east);
\end{scope}\draw[->,red] ($(a-2-1.center)+(0.5,0)$)–($(a-3-3.center)-(.5,0)$);
\draw[->,red] ($(a-3-3.center)+(0.5,0)$)–($(a-2-4.center)-(0.5,0)$);
\end{tikzpicture}
\end{document}
`
-
19 Settembre 2014 alle 12:20 #96703::
Quella proposta da Little è certamente una soluzione.Ne propongo una seconda spiegando cosa c’è che secondo me non funziona in quel codice. Per capirlo, è sufficiente aggiungere la chiave [tt]draw[/tt]: `
\begin{tikzpicture}[font=\small,x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={draw, %<= aggiunta qui text width=8mm, text depth=1mm, text centered}]{ & $1$ & $-6$ & $11$ & $-6$ \\ $1$ & & $1$ & $-5$ & \\ & $1$ & $-5$ & & \\ }; \begin{scope}[blue] \draw(a-1-2.north west)--(a-3-1.south east); \draw(a-2-1.south west)--(a-2-5.south east); \draw(a-1-4.north east)--(a-3-4.south east); \end{scope} \draw[->,red] (a-2-1)–(a-3-3);
\draw[->,red] (a-3-3)–(a-2-4);
\end{tikzpicture}
` I nodi sono tutti attaccati perciò la seconda freccia non può essere disegnata: non c’è spazio. La prima cosa da fare è aggiungere spazio fra righe e colonne con opzioni apposite: `
\begin{tikzpicture}[font=\small,x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,% meglio matrix of math nodes
row sep=1ex,column sep=1em,
nodes={draw,text width=8mm, text depth=1mm, text centered}]{
& $1$ & $-6$ & $11$ & $-6$ \\
$1$ & & $1$ & $-5$ & \\
& $1$ & $-5$ & & \\
};
\begin{scope}[blue]
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-5.south east);
\draw(a-1-4.north east)–(a-3-4.south east);
\end{scope}\draw[->,red] (a-2-1)–(a-3-3);
\draw[->,red] (a-3-3)–(a-2-4);
\end{tikzpicture}
` il che ci permette anche di capire che il primo dei segmenti in blu è diventato inguardabile. Il problema è che inizia dal nodo della seconda colonna e finisce nella prima. Anche il secondo segmento verticale è sbagliato visto che è appoggiato ai nodi della stessa colonna. Oltretutto i nodi hanno dimensioni differenti. Insomma, una schifezza.Per ovviare a tutto ciò, punto 1 sistemiamo i nodi: devono avere le stesse dimensioni. È facile: usiamo `
nodes={draw,text depth=0mm,text height=1ex,text centered,minimum width=5mm,minimum height=2ex,inner sep=0pt}
` dove diamo dimensioni minime in larghezza e altezza e eliminiamo il padding con inner sep. Ora i segmenti. Siccome c’è spazio fra le colonne, bisogna individuarne la metà, il che presuppone di caricare la libreria calc. Quindi: `\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,matrix}
\begin{document}\begin{tikzpicture}[font=\small,x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,
row sep=1ex,column sep=1em,
nodes={text depth=0mm,text height=1ex,text centered,minimum width=5mm,minimum height=2ex,inner sep=0pt}]{
& $1$ & $-6$ & $11$ & $-6$ \\
$1$ & & $1$ & $-5$ & \\
& $1$ & $-5$ & & \\
};
\begin{scope}[blue]
\draw($(a-1-1.north east)!0.5!(a-1-2.north west)$)–
($(a-3-1.south east)!0.5!(a-3-2.south west)$);
\draw(a-2-1.south west)–(a-2-5.south east);% stessa cosa di sopra qui
\draw(a-1-4.north east)–(a-3-4.south east);% idem, ma in verticale
\end{scope}\draw[->,red] (a-2-1)–(a-3-3);
\draw[->,red] (a-3-3.north east)–(a-2-4.south west);% meglio così
\end{tikzpicture}\end{document}` Ho già tolto il [tt]draw[/tt] lasciato per debug. Mancano un paio di elementi lasciati per esercizio.
Ciao
Claudio
-
19 Settembre 2014 alle 13:20 #96704
-
20 Settembre 2014 alle 5:03 #96705::
Entrambe le soluzioni usano la libreria calc. Quale sia meglio dipende un po’ dal flusso di lavoro che devi svolgere.Con la soluzione di Little potrai tracciare più velocemente i segmenti blu, ma dovrai ogni volta andare a calcolare (per tentativi) i punti di inizio e fine segmenti con freccia.
Nella mia soluzione si sposta la parte “complicata”, quella in cui devi usare la libreria calc, nel disegno dei segmenti blu. In aggiunta occorre ridefinire qualche opzione della matrice. Però, per disegnare le freccie puoi accedere alle ancore standard dei nodi. Probabilmente questa soluzione è più adatta se devi fare molti disegni simili: hai il template con la matrice e i segmenti blu già pronto, perciò per la sola parte di disegno nuova, le frecce, non devi ogni volta trovare i punti di inizio e fine con calc.
Ciao
Claudio
-
22 Settembre 2014 alle 17:43 #96706::
Ciao Lorenzo,il mio commento è parzialmente OT, ma scrivo lo stesso.
Hai pensato di utilizzare Inkscape per le illustrazioni? Io ho provato a imparare a usare TikZ diverse volte, ma lo trovo assurdamente complicato, e in genere l’effetto è che mi ci vuole due ore per fare una cosa che in Inkscape farei in 5 minuti. Inkscape è free e open source.
-
22 Settembre 2014 alle 20:04 #96707::
grmttr” post=96495Ciao Lorenzo,
il mio commento è parzialmente OT, ma scrivo lo stesso.
Hai pensato di utilizzare Inkscape per le illustrazioni? Io ho provato a imparare a usare TikZ diverse volte, ma lo trovo assurdamente complicato, e in genere l’effetto è che mi ci vuole due ore per fare una cosa che in Inkscape farei in 5 minuti. Inkscape è free e open source.
Il discorso su inkscape non è off topic, perché questo programma di grafica vettoriale graficamente interattivo è in grado di esportare in LaTeX, quindi è in grado di produrre cose perfettamente compatibili con LaTeX stesso; in pratica scegliendo questa via produce un pdf vettoriale con al parte grafica abbinato a un file con una estensione particolare che contiene codice latex dell’ambiente picture, costruito da inkscape epr mettere le parti scritte, le legende, le espressioni matematiche e via discorrendo. le misore che inkscape stesso deterima per tutte le scatole e il loro posizionamento sono determinati sulle coordinate del disegno pdf. Il risultato si può considerare da buono ad ottimo oltre che veloce.
Certamente TiKZ per ottenere gli stessi disegni richiede una maggiore attenzione e una competenza maggiore.
Ma i disegni di TiKz sono eseguiti con il disegno programmato e il risultato è sempre eccellente, se l’operatore ha scritto le “espressioni grafiche” giuste. Inkscape come tutti i programmi interattivi con l’operatore produce ottimi risultati se l’operatore è in gamba, o prodotti modesti che possono soddisfare l’occhio disattento di un principiante, ma non quello di un esperto.In sostanza il tempo consumato per fare un disegno è proprzionale (±) alla sua qualità.
TiKZ riesce da solo a fare disegni impensabili con inkscape; basta sfogliare al guida di TiKZ per rendersene conto; ma per certi disegni abbastanza semplici la soluzione inkscape va bene.
Probabilmente le tabelle dei segni delle frazioni o i campi di esistenza delle soluzioni di disequazioni sono più facili da fare con inkscape, ma bisogna ogni volta ricominciare da capo per ogni nuova frazione o per ogni nuovo sistema di disequazioni.
Io, fossi Lorenzo, insisterei con TiKZ; ho già usato inkscapee mi ci trovo abbastanza bene, ma poi di fatto lo uso raramente, perché ottengo risultati migliori con le parti native o di estensione di LaTeX.
-
23 Settembre 2014 alle 4:36 #96708::
OldClaudio” post=96497
Ciao Lorenzo,
il mio commento è parzialmente OT, ma scrivo lo stesso.
Hai pensato di utilizzare Inkscape per le illustrazioni? Io ho provato a imparare a usare TikZ diverse volte, ma lo trovo assurdamente complicato, e in genere l’effetto è che mi ci vuole due ore per fare una cosa che in Inkscape farei in 5 minuti. Inkscape è free e open source.
Il discorso su inkscape non è off topic, perché questo programma di grafica vettoriale graficamente interattivo è in grado di esportare in LaTeX, quindi è in grado di produrre cose perfettamente compatibili con LaTeX stesso; in pratica scegliendo questa via produce un pdf vettoriale con al parte grafica abbinato a un file con una estensione particolare che contiene codice latex dell’ambiente picture, costruito da inkscape epr mettere le parti scritte, le legende, le espressioni matematiche e via discorrendo. le misore che inkscape stesso deterima per tutte le scatole e il loro posizionamento sono determinati sulle coordinate del disegno pdf. Il risultato si può considerare da buono ad ottimo oltre che veloce.
Certamente TiKZ per ottenere gli stessi disegni richiede una maggiore attenzione e una competenza maggiore.
Ma i disegni di TiKz sono eseguiti con il disegno programmato e il risultato è sempre eccellente, se l’operatore ha scritto le “espressioni grafiche” giuste. Inkscape come tutti i programmi interattivi con l’operatore produce ottimi risultati se l’operatore è in gamba, o prodotti modesti che possono soddisfare l’occhio disattento di un principiante, ma non quello di un esperto.In sostanza il tempo consumato per fare un disegno è proprzionale (±) alla sua qualità.
TiKZ riesce da solo a fare disegni impensabili con inkscape; basta sfogliare al guida di TiKZ per rendersene conto; ma per certi disegni abbastanza semplici la soluzione inkscape va bene.
Probabilmente le tabelle dei segni delle frazioni o i campi di esistenza delle soluzioni di disequazioni sono più facili da fare con inkscape, ma bisogna ogni volta ricominciare da capo per ogni nuova frazione o per ogni nuovo sistema di disequazioni.
Io, fossi Lorenzo, insisterei con TiKZ; ho già usato inkscapee mi ci trovo abbastanza bene, ma poi di fatto lo uso raramente, perché ottengo risultati migliori con le parti native o di estensione di LaTeX.
Vi dirò un segreto: a me piacerebbe molto provare a utilizzare Inkscape, ma sul mio computer non vuole saperne di funzionare. Si chiude appena aperto notificandomi un errore.
Ciao
Tommaso
-
23 Settembre 2014 alle 4:40 #96709::
Oltre a concordare con quanto dice @OldClaudio (per le matrici, una volta che si ha il template pronto, andare a creare un nuovo diagramma è questione di minuti – pochi – e non si inizia mai da zero) vorrei commentare il problema del tempo.È innegabile che il disegno programmato richieda tempo. Ma per avere una certa qualità, in qualsiasi cosa, esistono sempre strade veloci? In genere la velocità si paga in termini di qualità. Secondo punto, la conversione. Ogni programma di conversione, per quanto accurato sia, crea “perdite”. È abbastanza noto quanto sia precisa la conversione LaTeX->Word. E la stessa cosa capita esportando figure. In primo luogo alcuni effetti vengono resi male (penso alle sfumature). Secondo: il codice, perché quando si esporta viene generato del codice TikZ, è semplicemente penoso e mai al passo con i tempi. Tanto per dire, se faccio ora una conversione, col cavolo che posso utilizzare al 100% le potenzialità della libreria [tt]arrows.meta[/tt] per le frecce.
Bene essendomi dilungato, torniamo al punto. Non è sempre vero che usare programmi esterni faccia risparmiare tempo. Venerdì assistevo ad un evento vicino ad un collega del mio gruppo di ricerca, un ragazzo molto bravo. In circa un’ora e mezza ha disegnato uno schema con OmniGraffle, una roba quasi banale (colonna sinistra diversi tipi di utenti, colonna destra applicazioni). Certo il risultato finale è molto carino e sicuramente con TikZ servono ottime competenze per riprodurre tutti gli effetti, ma ci ha impiegato tantissimo. Non parliamo del posizionamento dei vari elementi “con il mouse” + “spostamenti con le frecce direzionali” + “edit da finestra delle proprietà”.
La storia del complicato non mi convince. Tutto è complicato se non si entra nella filosofia dello strumento. Ipotizziamo che ho fatto uno schema a blocchi con Inkscape e voglia cambiare il corpo del font a metà dei blocchi. Cosa devo fare? Mi devo selezionare il testo e cambiare il font. Con TikZ cosa faccio? Aggiungo un [tt]\begin{scope}[font=qualcosa][/tt] e [tt]\end{scope}[/tt] per raggruppare i blocchi che mi interessano. Stop. Per me è più semplice il secondo metodo, oltre che più veloce.
Poi riconosco che in alcuni tipi di applicazioni siano migliori tool esterni. Se uno deve produrre un logo, TikZ forse non è lo strumento migliore. Per diagrammi non c’è storia.
Ciao
Claudio
-
23 Settembre 2014 alle 4:43 #96710::
illinguista1972″ post=96499Vi dirò un segreto: a me piacerebbe molto provare a utilizzare Inkscape, ma sul mio computer non vuole saperne di funzionare. Si chiude appena aperto notificandomi un errore.
Ciao
TommasoProbabilmente è XQuartz. Hai provato a reinstallarlo? Oltretutto devi anche installare il plugin per esportare in TikZ, mi sembra che di suo non ci sia.
Ciao
Claudio
-
23 Settembre 2014 alle 5:30 #96711::
OldClaudio” post=96497
Il discorso su inkscape non è off topic, perché questo programma di grafica vettoriale graficamente interattivo è in grado di esportare in LaTeX, quindi è in grado di produrre cose perfettamente compatibili con LaTeX stesso; in pratica scegliendo questa via produce un pdf vettoriale con al parte grafica abbinato a un file con una estensione particolare che contiene codice latex dell’ambiente picture, costruito da inkscape epr mettere le parti scritte, le legende, le espressioni matematiche e via discorrendo. le misore che inkscape stesso deterima per tutte le scatole e il loro posizionamento sono determinati sulle coordinate del disegno pdf. Il risultato si può considerare da buono ad ottimo oltre che veloce.
Certamente TiKZ per ottenere gli stessi disegni richiede una maggiore attenzione e una competenza maggiore.
Ma i disegni di TiKz sono eseguiti con il disegno programmato e il risultato è sempre eccellente, se l’operatore ha scritto le “espressioni grafiche” giuste. Inkscape come tutti i programmi interattivi con l’operatore produce ottimi risultati se l’operatore è in gamba, o prodotti modesti che possono soddisfare l’occhio disattento di un principiante, ma non quello di un esperto.In sostanza il tempo consumato per fare un disegno è proprzionale (±) alla sua qualità.
TiKZ riesce da solo a fare disegni impensabili con inkscape; basta sfogliare al guida di TiKZ per rendersene conto; ma per certi disegni abbastanza semplici la soluzione inkscape va bene.
Probabilmente le tabelle dei segni delle frazioni o i campi di esistenza delle soluzioni di disequazioni sono più facili da fare con inkscape, ma bisogna ogni volta ricominciare da capo per ogni nuova frazione o per ogni nuovo sistema di disequazioni.
Io, fossi Lorenzo, insisterei con TiKZ; ho già usato inkscapee mi ci trovo abbastanza bene, ma poi di fatto lo uso raramente, perché ottengo risultati migliori con le parti native o di estensione di LaTeX.
Certo, concordo che per i disegni più complessi (mi vengono in mente quelli in cui le parti del disegno devono essere in precisi rapporti geometrici le une con le altre) TikZ sia più indicato; tuttavia, almeno per me, per disegni semplici (come, mi sembra, quello inviato da Lorenzo), Inkscape è la soluzione con il miglior rapporto qualità/sforzo richiesto e qualità/tempo richiesto. La mia idea è che TikZ e Inkscape abbiano diversi vantaggi e svantaggi, e per certi scopi uno può essere più adatto dell’altro. Poi entra anche il gioco la familiarità – per me TikZ è molto complesso da usare perché l’ho usato poco; con Inkscape ho molta più familiarità e quindi mi sembra più immediato. Comunque era solo per dare un ulteriore suggerimento, non volevo dirottare il thread in una discussione su quale sia meglio tra Inkscape e TikZ 🙂
-
24 Settembre 2014 alle 9:41 #96712::
OldClaudio” post=96497
Io, fossi Lorenzo, insisterei con TiKZ […].Già! Ammetto che una delle principali ragioni per cui ho accettato l’incarico di scrivere gli e-book di matematica per la mia scuola è stato avere la possibilità di approfondire TikZ. È uno strumento eccezionale , anche se non è facile. Del resto, si può dire la stessa cosa per LaTeX… 😉
-
11 Ottobre 2014 alle 12:05 #96713::
Carissimi, l’uso che faccio del formidabile TikZ è molto elementare.
`\documentclass{article}
\usepackage{tikz}\usetikzlibrary{matrix,patterns}
\begin{document}
\begin{center}
\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={ text width=8mm, text depth=1mm, text centered}]{
& $1$ & $-3$ & $-3$ & $-4$ \\
$4$ & & $4$ & $4$ & $4$ \\
& $1$ & $1$ & $1$ & $0$ \\
};
\begin{scope}[blue]
\draw (a-1-2.north west)–(a-3-1.south east);
\draw (a-2-1.south west)–(a-2-5.south east);
\draw (a-1-4.north east)–(a-3-4.south east);
\end{scope}
\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture}[font=\small,x=10mm, y=10mm]\draw [->] (0,0) — (8,0) node [below right] () {$r$};
\foreach \x in {2,4,6}{
\draw (\x,3pt)–(\x,-3pt);\begin{scope} [dotted]
\draw (\x,0) — (\x,-3.5);
\end{scope}}\node
at (0,-0.5) {$F_1$};
\nodeat (0,-1) {$F_2$};
\nodeat (0,-1.5) {$F_3$};
\nodeat (0,-2.5) {$P$};
\nodeat (0,-3.0) {$\mathcal{S}$};
\node [above] at (2,0) {$-3$};
\node [above] at (4,0) {$0$};
\node [above] at (6,0) {$3$};\node at (1,-0.5) {$-$};
\node at (3,-0.5) {$-$};
\node at (5,-0.5) {$+$};
\node at (7,-0.5) {$+$};\node at (1,-1) {$-$};
\node at (3,-1) {$-$};
\node at (5,-1) {$-$};
\node at (7,-1) {$+$};\node at (1,-1.5) {$-$};
\node at (3,-1.5) {$+$};
\node at (5,-1.5) {$+$};
\node at (7,-1.5) {$+$};\node at (1,-2.5) {$-$};
\node at (3,-2.5) {$+$};
\node at (5,-2.5) {$-$};
\node at (7,-2.5) {$+$};\draw [fill] (4,-0.5) circle (2.0pt);
\draw [fill] (6,-1) circle (2.0pt);
\draw [fill] (2,-1.5) circle (2.0pt);\draw [fill] (2,-2.5) circle (2.0pt);
\draw [fill] (4,-2.5) circle (2.0pt);
\draw [fill] (6,-2.5) circle (2.0pt);\pattern [pattern= north east lines, pattern color=blue!75!white] (0,-3) rectangle (2,-3.5);
\pattern [pattern= north east lines, pattern color=blue!75!white] (4,-3) rectangle (6,-3.5);\draw [blue,ultra thick] (0,-3.0) — (2,-3.0);
\draw [blue,ultra thick] (4,-3.0) — (6,-3.0);
\draw [blue,fill=white,very thick] (2,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (4,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (6,-3.0) circle (2.0pt);
\end{tikzpicture}
\end{center}\end{document}`
Vorrei migliorare i risultati precedenti: quello non non va bene è l’incolonnamento dei numeri nella prima tabella, e delle lettere nella seconda. Nel primo caso vorrei che i numeri fossero allineanti a destra (e non a sinistra), nel secondo caso vorrei che le lettere fossero centrate verticalmente.Come fare?
Ah, più la soluzione è semplice, più la apprezzo!! 😉
-
11 Ottobre 2014 alle 16:29 #96714::
lorenzo.pantieri” post=96913Carissimi, l’uso che faccio del formidabile TikZ è molto elementare.
`\documentclass{article}
\usepackage{tikz}\usetikzlibrary{matrix,patterns}
\begin{document}
\begin{center}
\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={ text width=8mm, text depth=1mm, text centered}]{
& $1$ & $-3$ & $-3$ & $-4$ \\
$4$ & & $4$ & $4$ & $4$ \\
& $1$ & $1$ & $1$ & $0$ \\
};
\begin{scope}[blue]
\draw (a-1-2.north west)–(a-3-1.south east);
\draw (a-2-1.south west)–(a-2-5.south east);
\draw (a-1-4.north east)–(a-3-4.south east);
\end{scope}
\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture}[font=\small,x=10mm, y=10mm]\draw [->] (0,0) — (8,0) node [below right] () {$r$};
\foreach \x in {2,4,6}{
\draw (\x,3pt)–(\x,-3pt);\begin{scope} [dotted]
\draw (\x,0) — (\x,-3.5);
\end{scope}}\node
at (0,-0.5) {$F_1$};
\nodeat (0,-1) {$F_2$};
\nodeat (0,-1.5) {$F_3$};
\nodeat (0,-2.5) {$P$};
\nodeat (0,-3.0) {$\mathcal{S}$};
\node [above] at (2,0) {$-3$};
\node [above] at (4,0) {$0$};
\node [above] at (6,0) {$3$};\node at (1,-0.5) {$-$};
\node at (3,-0.5) {$-$};
\node at (5,-0.5) {$+$};
\node at (7,-0.5) {$+$};\node at (1,-1) {$-$};
\node at (3,-1) {$-$};
\node at (5,-1) {$-$};
\node at (7,-1) {$+$};\node at (1,-1.5) {$-$};
\node at (3,-1.5) {$+$};
\node at (5,-1.5) {$+$};
\node at (7,-1.5) {$+$};\node at (1,-2.5) {$-$};
\node at (3,-2.5) {$+$};
\node at (5,-2.5) {$-$};
\node at (7,-2.5) {$+$};\draw [fill] (4,-0.5) circle (2.0pt);
\draw [fill] (6,-1) circle (2.0pt);
\draw [fill] (2,-1.5) circle (2.0pt);\draw [fill] (2,-2.5) circle (2.0pt);
\draw [fill] (4,-2.5) circle (2.0pt);
\draw [fill] (6,-2.5) circle (2.0pt);\pattern [pattern= north east lines, pattern color=blue!75!white] (0,-3) rectangle (2,-3.5);
\pattern [pattern= north east lines, pattern color=blue!75!white] (4,-3) rectangle (6,-3.5);\draw [blue,ultra thick] (0,-3.0) — (2,-3.0);
\draw [blue,ultra thick] (4,-3.0) — (6,-3.0);
\draw [blue,fill=white,very thick] (2,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (4,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (6,-3.0) circle (2.0pt);
\end{tikzpicture}
\end{center}\end{document}`
Vorrei migliorare i risultati precedenti: quello non non va bene è l’incolonnamento dei numeri nella prima tabella, e delle lettere nella seconda. Nel primo caso vorrei che i numeri fossero allineanti a destra (e non a sinistra), nel secondo caso vorrei che le lettere fossero centrate verticalmente.Come fare?
Ah, più la soluzione è semplice, più la apprezzo!! 😉
Ti piace così?`\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,patterns}
\begin{document}
\begin{center}
\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=8mm, text depth=1mm,text ragged left}]{
& $1$ & $-3$ & $-3$ & $-4$ \\
$4$ & & $4$ & $4$ & $4$ \\
& $1$ & $1$ & $1$ & $0$ \\
};
\begin{scope}[blue]
\draw (a-1-2.north west)–(a-3-1.south east);
\draw (a-2-1.south west)–(a-2-5.south east);
\draw (a-1-4.north east)–(a-3-4.south east);
\end{scope}
\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture}[font=\small,x=10mm, y=10mm]\draw [->] (0,0) — (8,0) node [below right] () {$r$};
\foreach \x in {2,4,6}{
\draw (\x,3pt)–(\x,-3pt);\begin{scope} [dotted]
\draw (\x,0) — (\x,-3.5);
\end{scope}}\node at (-0.25,-0.5) {$F_1$};
\node at (-0.25,-1) {$F_2$};
\node at (-0.25,-1.5) {$F_3$};
\node at (-0.25,-2.5) {$P$};
\node at (-0.25,-3.0) {$\mathcal{S}$};\node [above] at (2,0) {$-3$};
\node [above] at (4,0) {$0$};
\node [above] at (6,0) {$3$};\node at (1,-0.5) {$-$};
\node at (3,-0.5) {$-$};
\node at (5,-0.5) {$+$};
\node at (7,-0.5) {$+$};\node at (1,-1) {$-$};
\node at (3,-1) {$-$};
\node at (5,-1) {$-$};
\node at (7,-1) {$+$};\node at (1,-1.5) {$-$};
\node at (3,-1.5) {$+$};
\node at (5,-1.5) {$+$};
\node at (7,-1.5) {$+$};\node at (1,-2.5) {$-$};
\node at (3,-2.5) {$+$};
\node at (5,-2.5) {$-$};
\node at (7,-2.5) {$+$};\draw [fill] (4,-0.5) circle (2.0pt);
\draw [fill] (6,-1) circle (2.0pt);
\draw [fill] (2,-1.5) circle (2.0pt);\draw [fill] (2,-2.5) circle (2.0pt);
\draw [fill] (4,-2.5) circle (2.0pt);
\draw [fill] (6,-2.5) circle (2.0pt);\pattern [pattern= north east lines, pattern color=blue!75!white] (0,-3) rectangle (2,-3.5);
\pattern [pattern= north east lines, pattern color=blue!75!white] (4,-3) rectangle (6,-3.5);\draw [blue,ultra thick] (0,-3.0) — (2,-3.0);
\draw [blue,ultra thick] (4,-3.0) — (6,-3.0);
\draw [blue,fill=white,very thick] (2,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (4,-3.0) circle (2.0pt);
\draw [blue,fill=white,very thick] (6,-3.0) circle (2.0pt);
\end{tikzpicture}
\end{center}\end{document}`Ovviamente il codice si può migliorare dal punto di vista dell’eleganza, ma forse prima è meglio sapere se il risultato è accettabile…
Lorenzo
-
12 Ottobre 2014 alle 4:28 #96715::
GKT” post=96918
Ovviamente il codice si può migliorare dal punto di vista dell’eleganza, ma forse prima è meglio sapere se il risultato è accettabile…Il risultato è in entrambi i casi eccellente: esattamente quello che volevo.
Nel primo caso la sintassi è molto elegante (è bastato dire di allineare i numeri a destra). Invece nel secondo l’hai raggiunto con un posizionamento manuale: se hai idee per migliorare l’eleganza del codice, sono qui!
Grazie 1000,
L.
-
12 Ottobre 2014 alle 6:30 #96716::
Di seguito, vi espongo questo dubbio terrificante. Terrificante, perché mostra impietosamente la qualità dei miei neuroni. Per farla breve, non so come disegnare un punto in un grafico. 🙁
`\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis} [width=13cm,
axis lines=middle,
xmin=0,xmax=16,ymin=-5,ymax=5,
enlargelimits,
xtick = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},
ytick={-5,-4,-3,-2,-1,0,1,2,3,4,5},
xticklabels={$1$, $2$, $3$, $4$, $5$, $6$, $7$, $8$, $9$, $10$, $11$, $12$, $13$, $14$, $15$, $16$},
yticklabels={$-5$, $-4$, $-3$, $-2$, $-1$, $0$, $1$, $2$, $3$, $4$, $5$},
xlabel=$x$,
ylabel=$y$]
\addplot [domain=0:16, samples=500,smooth,very thick,blue] {ln(x)/ln(2))};\draw [blue,fill=blue] (1,0) circle (2.0pt);
\draw [blue,fill=blue] (2,1) circle (2.0pt);
\draw [blue,fill=blue] (4,2) circle (2.0pt);
\draw [blue,fill=blue] (8,3) circle (2.0pt);
\draw [blue,fill=blue] (16,4) circle (2.0pt);\end{axis}
\end{tikzpicture}
\caption{La funzione $y=\log_2{x}$.}
\end{figure}`
Quello che voglio fare è chiaro. Disegnare per punti una funzione logaritmica.Solo che non so come inserire i punti. Non ci riesco neppure manualmente. 🙁
Aiuto!
-
12 Ottobre 2014 alle 8:47 #96717::
lorenzo.pantieri” post=96922Quello che voglio fare è chiaro. Disegnare per punti una funzione logaritmica.
`
\begin{tikzpicture}
\begin{axis} [width=13cm,
axis lines=middle,
xmin=0,xmax=16,ymin=-5,ymax=5,
enlargelimits,
xtick={1,…,16},
ytick={-5,…,5},
xlabel=$x$,
ylabel=$y$]
\addplot [domain=0:16, samples=500,smooth,very thick,blue] {ln(x)/ln(2)};
\addplot [only marks, samples at={1,2,4,8,16}, blue] {ln(x)/ln(2)};
\end{axis}
\end{tikzpicture}`
Occhio che c’era una parentesi troppo dopo il [tt]ln(2)[/tt]. Nota come ho ridefinito le tacche degli assi con la notazione ellittica. Perché avevi definito manualmente le etichette? A me risulta che quelle automatiche siano già in modo matematico.Ciao
-
12 Ottobre 2014 alle 11:39 #96718::
Liverpool” post=96934
Quello che voglio fare è chiaro. Disegnare per punti una funzione logaritmica.
`
\begin{tikzpicture}
\begin{axis} [width=13cm,
axis lines=middle,
xmin=0,xmax=16,ymin=-5,ymax=5,
enlargelimits,
xtick={1,…,16},
ytick={-5,…,5},
xlabel=$x$,
ylabel=$y$]
\addplot [domain=0:16, samples=500,smooth,very thick,blue] {ln(x)/ln(2)};
\addplot [only marks, samples at={1,2,4,8,16}, blue] {ln(x)/ln(2)};
\end{axis}
\end{tikzpicture}`
Occhio che c’era una parentesi troppo dopo il [tt]ln(2)[/tt]. Nota come ho ridefinito le tacche degli assi con la notazione ellittica. Perché avevi definito manualmente le etichette? A me risulta che quelle automatiche siano già in modo matematico.Semplicemente perfetto!
Grazie di cuore! 🙂
-
14 Ottobre 2014 alle 13:00 #96719::
Sicuramente la risposta di @Liverpool è la più corretta, ma aggiungo per completezza che, se ti interessa inserire un punto in un grafico, devi utilizzare la sintassi:
`
\draw (axis cs:0,0) circle (1pt);
`
Utilizzando [tt]axis cs[/tt] accedi al sistema di riferimento del grafico e puoi quindi utilizzare le coordinate che ti interessano. 😀
-
17 Ottobre 2014 alle 10:30 #96720::
Ecco un’altra stranezza.L’immagine è la figura 47 a pagina 77 di questo documento:
http://www.lorenzopantieri.net/Matematica_files/Quarta.pdf
Il codice è il seguente:
`\begin{tikzpicture} [font=\small,x=6mm, y=5mm]
\draw [->] (0,0) — (25,0) node [below left] {frequenza (Hz)};\foreach \x in {1,…,24}{
\draw (\x,3pt)–(\x,-3pt);
}\node [above] at (1,0) {$10^1$};
\node [above] at (5,0) {$10^5$};
\node [above] at (7,0) {$10^7$};
\node [above] at (9,0) {$10^9$};
\node [above] at (11,0) {$10^{11}$};
\node [above] at (14,0) {$10^{14}$};
\node [above] at (17,0) {$10^{17}$};
\node [above] at (19,0) {$10^{19}$};
\node [above] at (22,0) {$10^{22}$};
\node [above] at (24,0) {$10^{24}$};\draw (1.9,-2.5) rectangle (23.1,-1.5);
\shade(0,-2.5) rectangle (2,-1.5);
\shade(23,-2.5) rectangle (25,-1.5);
\draw [dotted] (14,-1.5) — (14,-2.5);
\draw [dotted] (15,-1.5) — (15,-2.5);\node [above] at (6,-3.5) {radio};
\node [above] at (11,-3.5) {microonde};
\node at (12,-1.0) {infrarosso};
\node [above] at (14.5,-3.5) {visibile};
\node at (16.5,-1.0) {ultravioletto};
\node [above] at (18,-3.5) {raggi X};
\node [above] at (21,-3.5) {raggi gamma};
\end{tikzpicture}`
Perché “raggi X” e “raggi gamma” sono sopra a “radio”, “microonde” e “visibile”, visto che l’ordinata del nodo è la stessa?Soluzioni?
Ah, il modo di fare la striscia sfumata ai lati è artigianale, ma non mi è venuto nulla di meglio. Infatti \shade ombreggia il contenuto, ma non il contorno. Per “saldare” il rettangolone centrale, in grigio, con i due alle estremità sfumati, ho dovuto fare quel gioco di sovrapposizioni.
Grazie,
L.
-
18 Ottobre 2014 alle 5:49 #96721::
lorenzo.pantieri” post=97153Ecco un’altra stranezza.
Perché “raggi X” e “raggi gamma” sono sopra a “radio”, “microonde” e “visibile”, visto che l’ordinata del nodo è la stessa?
Soluzioni?
Non è una stranezza. Le parole raggi e gamma hanno delle “g”, le altre no. Quindi devi tenere presente la gamba della g. Quando definisci i nodi testuali specifica tu l’altezza del testo: `
\begin{scope}[text height=1ex, text depth=0pt]
\node [above] at (6,-3.5) {radio};
\node [above] at (11,-3.5) {microonde};
\node at (12,-1.0) {infrarosso};
\node [above] at (14.5,-3.5) {visibile};
\node at (16.5,-1.0) {ultravioletto};
\node [above] at (18,-3.5) {raggi X};
\node [above] at (21,-3.5) {raggi gamma};
\end{scope}
`lorenzo.pantieri” post=97153
Ah, il modo di fare la striscia sfumata ai lati è artigianale, ma non mi è venuto nulla di meglio. Infatti \shade ombreggia il contenuto, ma non il contorno. Per “saldare” il rettangolone centrale, in grigio, con i due alle estremità sfumati, ho dovuto fare quel gioco di sovrapposizioni.Grazie,
L.Quasi vero. Nel senso che potresti definire una nuova tipologia di shading che risolve il problema. Per quanto riguarda il bordo, non è banalissimo da tenere in considerazione, ma si può fare (vedi qui.
Ciao
Claudio
-
18 Ottobre 2014 alle 10:05 #96722::
cfiandra” post=97176
Non è una stranezza. Le parole raggi e gamma hanno delle “g”, le altre no. Quindi devi tenere presente la gamba della g. Quando definisci i nodi testuali specifica tu l’altezza del testo: `
\begin{scope}[text height=1ex, text depth=0pt]
\node [above] at (6,-3.5) {radio};
\node [above] at (11,-3.5) {microonde};
\node at (12,-1.0) {infrarosso};
\node [above] at (14.5,-3.5) {visibile};
\node at (16.5,-1.0) {ultravioletto};
\node [above] at (18,-3.5) {raggi X};
\node [above] at (21,-3.5) {raggi gamma};
\end{scope}
`Perfetto!
Circa l’ombreggiatura, invece, tengo la mia soluzione, artigianale e semplicissima.
Grazie di cuore! 🙂
-
18 Ottobre 2014 alle 11:00 #96723
-
18 Ottobre 2014 alle 11:16 #96724::
Liverpool” post=97191Hai notato che le etichette dell’asse delle frequenze se ne vanno ognuna per conto suo? Io avrei usato [tt]right[/tt] per allinearle in modo uniforme.
Ma perché il rettangolo centrale ha il bordo mentre i due sfumati no?
Il bordo del rettangolo centrale è in bianco. Riguardo alle etichette dell’asse delle frequenze, non ho capito come useresti right. Questo è il codice:
`\begin{tikzpicture} [font=\small,x=6mm, y=5mm]
\draw [->] (0,0) — (25,0) node [below left] {frequenza (Hz)};\foreach \x in {1,…,24}{
\draw (\x,3pt)–(\x,-3pt);
}\node [above] at (1,0) {$10^1$};
\node [above] at (5,0) {$10^5$};
\node [above] at (7,0) {$10^7$};
\node [above] at (9,0) {$10^9$};
\node [above] at (11,0) {$10^{11}$};
\node [above] at (14,0) {$10^{14}$};
\node [above] at (17,0) {$10^{17}$};
\node [above] at (19,0) {$10^{19}$};
\node [above] at (22,0) {$10^{22}$};
\node [above] at (24,0) {$10^{24}$};\draw (1.9,-2.5) rectangle (23.1,-1.5);
\shade(0,-2.5) rectangle (2,-1.5);
\shade(23,-2.5) rectangle (25,-1.5);
\draw [dotted] (14,-1.5) — (14,-2.5);
\draw [dotted] (15,-1.5) — (15,-2.5);\begin{scope}[text height=1ex, text depth=0pt]
\node [above] at (6,-3.5) {radio};
\node [above] at (11,-3.5) {microonde};
\node at (12,-1.0) {infrarosso};
\node [above] at (14.5,-3.5) {visibile};
\node at (16.5,-1.0) {ultravioletto};
\node [above] at (18,-3.5) {raggi X};
\node [above] at (21,-3.5) {raggi gamma};
\end{scope}
\end{tikzpicture}
`
Come lo miglioreresti?
-
18 Ottobre 2014 alle 12:55 #96725::
lorenzo.pantieri” post=97192Il bordo del rettangolo centrale è in bianco.
Già ma perché? E’ questo che non ho capito.
lorenzo.pantieri” post=97192Riguardo alle etichette dell’asse delle frequenze, non ho capito come useresti right.
`\foreach \x in {1,5,7,9,11,14,17,19,22,24}
\nodeat (\x,9pt) {$10^{\x}$};`
-
18 Ottobre 2014 alle 13:25 #96726::
Liverpool” post=97194
Il bordo del rettangolo centrale è in bianco.
Già ma perché? E’ questo che non ho capito.
lorenzo.pantieri” post=97192Riguardo alle etichette dell’asse delle frequenze, non ho capito come useresti right.
`\foreach \x in {1,5,7,9,11,14,17,19,22,24}
\node [right=-8pt] at (\x,9pt) {$10^{\x}$};`Perfetto il codice.
Ho usato il bordo bianco nel rettangolo centrale perché (sbaglio?) un rettangolo sfumato con \shade non ha il bordo. Quindi per incollare bene i due rettangoli laterali sfumati con il rettangolo centrale non sfumato, ho messo il bordo bianco in quest’ultimo. Come potevo fare altrimenti?
-
18 Ottobre 2014 alle 13:44 #96727::
lorenzo.pantieri” post=97195Ho usato il bordo bianco nel rettangolo centrale perché (sbaglio?) un rettangolo sfumato con \shade non ha il bordo. Quindi per incollare bene i due rettangoli laterali sfumati con il rettangolo centrale non sfumato, ho messo il bordo bianco in quest’ultimo. Come potevo fare altrimenti?
Continuo a non capire il problema. Cosa c’è che non va in questo codice?`
\fill [lightgray!50!white] (1.9,-2.5) rectangle (23.1,-1.5);
\shade(0,-2.5) rectangle (2,-1.5);
\shade(23,-2.5) rectangle (25,-1.5);`
A me sembra tutto perfettamente incollato.P.S.: se vuoi dare un bordo alla sfumatura, devi usare il comando [tt]\draw[/tt], come scritto in fondo al par. 5.2 dell’articolo su TikZ.
Ciao
-
18 Ottobre 2014 alle 14:07 #96728::
Liverpool” post=97196
Ho usato il bordo bianco nel rettangolo centrale perché (sbaglio?) un rettangolo sfumato con \shade non ha il bordo. Quindi per incollare bene i due rettangoli laterali sfumati con il rettangolo centrale non sfumato, ho messo il bordo bianco in quest’ultimo. Come potevo fare altrimenti?
Continuo a non capire il problema. Cosa c’è che non va in questo codice?`
\fill [lightgray!50!white] (1.9,-2.5) rectangle (23.1,-1.5);
\shade [left color=lightgray!10!white, right color=lightgray!50!white] (0,-2.5) rectangle (2,-1.5);
\shade [left color=lightgray!50!white, right color=lightgray!10!white] (23,-2.5) rectangle (25,-1.5);`
A me sembra tutto perfettamente incollato.Hai ragione naturalmente! Grazie mille per il codice! 🙂
-
19 Ottobre 2014 alle 7:37 #96729::
skevin93″ post=97041Sicuramente la risposta di @Liverpool è la più corretta, ma aggiungo per completezza che, se ti interessa inserire un punto in un grafico, devi utilizzare la sintassi:
`
\draw (axis cs:0,0) circle (1pt);
`
Utilizzando [tt]axis cs[/tt] accedi al sistema di riferimento del grafico e puoi quindi utilizzare le coordinate che ti interessano. 😀Ciao.
Vorrei mettere un bel pallino vuoto nel punto (1,0) di questo grafico.
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-5,xmax=5,ymin=-5,ymax=5,
enlargelimits,
xtick={-4,…,4},
ytick={-4,…,4},
xlabel=$x$,
ylabel=$y$]
\draw (axis cs:1,0) [blue,fill=white,very thick] (3,6) circle (2.0pt);
\end{axis}
\end{tikzpicture}`
Come si fa?
-
19 Ottobre 2014 alle 8:49 #96730::
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-5,xmax=5,ymin=-15,ymax=15,
enlargelimits,
xtick={-5,…,5},
ytick={-4},
xlabel=$x$,
ylabel=$y$]
\addplot [domain=-6:6, samples=600,unbounded coords=jump,smooth,very thick,blue] {(4-x*x)/(x-1)};\pattern [pattern= north east lines, pattern color=blue!75!white] (axis cs:1,-18) rectangle (axis cs:2,0);
\pattern [pattern= north east lines, pattern color=blue!75!white] (axis cs:2,0) rectangle (axis cs:18,18);
\pattern [pattern= north east lines, pattern color=blue!75!white] (axis cs:-2,0) rectangle (axis cs:1,18);
\pattern [pattern= north east lines, pattern color=blue!75!white] (axis cs:-2,0) rectangle (axis cs:-18,-18);\draw [blue,thick,dashed] (axis cs:1,-20) — (axis cs:1,20);
\draw [blue,thick,dashed] (axis cs:2,-20) — (axis cs:2,20);
\draw [blue,thick,dashed] (axis cs:-2,-20) — (axis cs:-2,20);\draw (axis cs:1,0) [blue,fill=white,very thick] circle (2.0pt);
\draw (axis cs:2,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:-2,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:0,-4) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}
`
Perché l’opzione “unbounded coords=jump” non funziona?In generale, faccio errori nel codice precedente?
-
19 Ottobre 2014 alle 9:18 #96731::
lorenzo.pantieri” post=97223Perché l’opzione “unbounded coords=jump” non funziona?
Perché nonostante i tuoi 600 campioni, nessuno dei valori calcolati è esattamente [tt]inf[/tt], ma è semplicemente un numero molto grande. Soluzione: ciò che ha ordinata di valore assoluto superiore a 30 viene considerato infinito.`
\addplot [domain=-6:6, samples=600, restrict y to domain=-30:30,smooth,very thick,blue] {(4-x*x)/(x-1)};`Ma ti servono veramente 600 campioni + smoothing? Te lo chiedo perché il file diventa inutilmente pesante oltre a dare alla lunga problemi di esaurimento di memoria.
Errori non ce ne sono. Ma perché non usi \addplot anche per le linee verticali e per i marcatori?
Il consiglio che ti do è di definirti nel preambolo uno stile per le linee da richiamare nei grafici. Metti che un giorno ti accorgi che il blu non ti piace e vuoi cambiare colore. Che fai? Modifichi gli ambienti uno ad uno? Non è più semplice definire una volta per tutte gli stili che utilizzerai in maniera uniforme?
-
19 Ottobre 2014 alle 10:01 #96732::
Liverpool” post=97225
Perché l’opzione “unbounded coords=jump” non funziona?
Perché nonostante i tuoi 600 campioni, nessuno dei valori calcolati è esattamente [tt]inf[/tt], ma è semplicemente un numero molto grande. Soluzione: ciò che ha ordinata di valore assoluto superiore a 30 viene considerato infinito.`
\addplot [domain=-6:6, samples=600, restrict y to domain=-30:30,smooth,very thick,blue] {(4-x*x)/(x-1)};`Ma ti servono veramente 600 campioni + smoothing? Te lo chiedo perché il file diventa inutilmente pesante oltre a dare alla lunga problemi di esaurimento di memoria.
Errori non ce ne sono. Ma perché non usi \addplot anche per le linee verticali e per i marcatori?
Il consiglio che ti do è di definirti nel preambolo uno stile per le linee da richiamare nei grafici. Metti che un giorno ti accorgi che il blu non ti piace e vuoi cambiare colore. Che fai? Modifichi gli ambienti uno ad uno? Non è più semplice definire una volta per tutte gli stili che utilizzerai in maniera uniforme?Benissimo.
`\tikzset{grafico/.style={very thick,blue}}`
Così?
-
19 Ottobre 2014 alle 14:47 #96733
-
19 Ottobre 2014 alle 16:31 #96734::
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.56\textwidth,
axis lines=middle,
xmin=-3,xmax=3,ymin=-5,ymax=5,
enlargelimits,
xtick={-1.732,1.732},
xticklabels={$-\sqrt{3}$,$\sqrt{3}$},
ytick={},
xlabel=$x$,
ylabel=$y$]\draw [blue,thick,dashed] (axis cs:1.732,-6) — (axis cs:1.732,6);
\draw [blue,thick,dashed] (axis cs:-1.732,-6) — (axis cs:-1.732,6);\draw (axis cs:1.732,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:-1.732,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:0,0) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`
Come faccio a eliminare del tutto le etichette sull’asse y? 🙁Ho visto empiricamente che impostando
`ytick={0}`
funziona. Va bene così?
-
19 Ottobre 2014 alle 17:24 #96735::
lorenzo.pantieri” post=97246Come faccio a eliminare del tutto le etichette sull’asse y? 🙁
`ytick=\empty`
lorenzo.pantieri” post=97246Ho visto empiricamente che impostando
`ytick={0}`
funziona. Va bene così?Funziona nel tuo caso perché hai scelto (per default) di non mostrare l’etichetta dell’origine.
-
27 Ottobre 2014 alle 13:30 #96736::
Ciao a tutti. Come si impone che l’untà di misura sia la stessa su entrambi gli assi? In altre parole, vorrei correggere il codice
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.39\textwidth,
axis lines=middle,
xmin=-2,xmax=4,ymin=-5,ymax=5,
enlargelimits,
xtick={-2,-1,1,2,3,4},
xticklabels={,,,$2$,,},
ytick={-5,-4,-3,-2,-1,1,2,3,4},
yticklabels={,$-4$,,,,,,,},
xlabel=$x$,
ylabel=$y$]\addplot [domain=-10:10, samples=200, restrict y to domain=-30:30,smooth,grafico] {2*x-4};
\pattern [pattern= north east lines, pattern color=lightgray] (axis cs:2,0) rectangle (axis cs:10,-10);
\pattern [pattern= north east lines, pattern color=lightgray] (axis cs:2,0) rectangle (axis cs:-10,10);% intersezioni
\draw (axis cs:0,-4) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:2,0) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`
in modo che la tacca sia lunga uguale nei due assi.Grazie,
L.
-
28 Ottobre 2014 alle 7:48 #96737
-
30 Ottobre 2014 alle 16:06 #96738::
Liverpool” post=97400
Ciao a tutti. Come si impone che l’untà di misura sia la stessa su entrambi gli assi?
Aggiungi all’ambiente [tt]axis[/tt] l’opzione
`scale mode=scale uniformly`Grazie Luigi! Ma ecco un’altra (per me) sopresa:
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.55\textwidth,
axis lines=middle,
xmin=-3,xmax=3,ymin=-2.5,ymax=2.5,
enlargelimits,
xtick={-2,-1,1,2},
ytick=\empty,
xlabel=$x$,
ylabel=$y$]\draw [help lines] (axis cs:-3,-3) grid (axis cs:3,3);
\draw [dashed] (axis cs:1,-10) — (axis cs:1,10);
\draw [dashed] (axis cs:-1,-10) — (axis cs:-1,10);\addplot [domain=-5:5, samples=200, restrict y to domain=-10:10,grafico] {sqrt(4-x^2)};
\end{axis}
\end{tikzpicture}`
1. Perché la griglia delle help lines è sfalsata rispetto al piano cartesiano?
2. Come aiutare TikZ a disegnare meglio la semicirconferenza, saldandola all’asse delle ascisse?Grazie 1000,
L.
-
31 Ottobre 2014 alle 9:01 #96739::
lorenzo.pantieri” post=97491
1. Perché la griglia delle help lines è sfalsata rispetto al piano cartesiano?[tt]grid[/tt] è un’istruzione di TikZ, non di pgfplots. Il passo della griglia è di 1 cm per default. Invece l’unità di misura del grafico non è 1 cm, ma dipende anche dal valore di [tt]width[/tt]. Il risultato è che la griglia è sfasata rispetto al grafico.
Di per sé pgfplots ha una chiave per disegnare la griglia, che si chiama proprio [tt]grid[/tt]. Io userei quella, ma nel tuo caso non funziona. Perché? Perché hai scelto di non mostrare le tacche sull’asse y. Ma allora uno si chiede: che senso ha aggiungere la griglia e rimuovere le tacche sull’asse y? Forse dovresti ripensarci: lasciare le tacche e rimuovere solo le etichette.lorenzo.pantieri” post=97491
2. Come aiutare TikZ a disegnare meglio la semicirconferenza, saldandola all’asse delle ascisse?Domanda: se vuoi disegnare la semicirconferenza nel rettangolo [-2,2]x[0,2], perché hai preso il dominio tra -5 e 5 (che tra l’altro è il default) e il codominio in [-10,10]? Dovrebbe bastare semplicemente:
`\addplot [samples=200, grafico] {sqrt(4-x^2)};`Ma così non va: mancano i punti sull’asse delle ascisse. Il motivo è che dividendo il dominio in 200 punti a partire da x=-5, con le inevitabili approssimazioni del sistema, nessuno dei campioni corrisponde a x=-2 o a x=2. Allora prova con
`\addplot [domain=-2:2, samples=200, grafico] {sqrt(4-x^2)};`
Così ci troviamo in x=-2, ma non in x=2 per lo stesso motivo. Allora il trucco consiste nel prendere un numero dispari di campioni:
`\addplot [domain=-2:2, samples=199, grafico] {sqrt(4-x^2)};`Osservazione: per disegnare una semicirconferenza con questo metodo hai bisogno di 200 campioni o poco meno con l’interpolazione. Invece con le curve di Bézier avresti bisogno di una manciata di punti e la memoria e le dimensioni del file te ne sarebbero grate. Allora perché non ricorrere ai comandi di TikZ? Potresti usare l’istruzione [tt]arc[/tt], ma dovresti conoscere l’unità di misura delle ascisse per determinare il raggio e abbiamo detto di non saperla (almeno io). Allora puoi combinare due curve di Bézier definite dalla posizione dei punti notevoli in questo modo
`\draw (axis cs:2,0) to [out=90, in=0] (axis cs:0,2) to [out=180, in=90] (axis cs:-2,0);`L’ipotesi restrittiva alla base è che il sistema di riferimento sia monometrico e il tuo, al momento, non lo è necessariamente.
-
5 Novembre 2014 alle 11:54 #96740::
Liverpool” post=97505
1. Perché la griglia delle help lines è sfalsata rispetto al piano cartesiano?
[tt]grid[/tt] è un’istruzione di TikZ, non di pgfplots. Il passo della griglia è di 1 cm per default. Invece l’unità di misura del grafico non è 1 cm, ma dipende anche dal valore di [tt]width[/tt]. Il risultato è che la griglia è sfasata rispetto al grafico.
Di per sé pgfplots ha una chiave per disegnare la griglia, che si chiama proprio [tt]grid[/tt]. Io userei quella, ma nel tuo caso non funziona. Perché? Perché hai scelto di non mostrare le tacche sull’asse y. Ma allora uno si chiede: che senso ha aggiungere la griglia e rimuovere le tacche sull’asse y? Forse dovresti ripensarci: lasciare le tacche e rimuovere solo le etichette.E quindi? Che cosa devo fare in concreto per disegnare quella griglia? Insomma, vorrei poter evitare cose del tipo:
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.7\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=5,ymin=-1,ymax=5,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$]\draw [help lines] (axis cs:-6,-10) — (axis cs:-6,10);
\draw [help lines] (axis cs:-5,-10) — (axis cs:-5,10);
\draw [help lines] (axis cs:-4,-10) — (axis cs:-4,10);
\draw [help lines] (axis cs:-3,-10) — (axis cs:-3,10);
\draw [help lines] (axis cs:-2,-10) — (axis cs:-2,10);
\draw [help lines] (axis cs:-1,-10) — (axis cs:-1,10);
\draw [help lines] (axis cs:1,-10) — (axis cs:1,10);
\draw [help lines] (axis cs:2,-10) — (axis cs:2,10);
\draw [help lines] (axis cs:3,-10) — (axis cs:3,10);
\draw [help lines] (axis cs:4,-10) — (axis cs:4,10);
\draw [help lines] (axis cs:5,-10) — (axis cs:5,10);
\draw [help lines] (axis cs:6,-10) — (axis cs:6,10);\draw [help lines] (axis cs:-10,-6) — (axis cs:10,-6);
\draw [help lines] (axis cs:-10,-5) — (axis cs:10,-5);
\draw [help lines] (axis cs:-10,-4) — (axis cs:10,-4);
\draw [help lines] (axis cs:-10,-3) — (axis cs:10,-3);
\draw [help lines] (axis cs:-10,-2) — (axis cs:10,-2);
\draw [help lines] (axis cs:-10,-1) — (axis cs:10,-1);
\draw [help lines] (axis cs:-10,1) — (axis cs:10,1);
\draw [help lines] (axis cs:-10,2) — (axis cs:10,2);
\draw [help lines] (axis cs:-10,3) — (axis cs:10,3);
\draw [help lines] (axis cs:-10,4) — (axis cs:10,4);
\draw [help lines] (axis cs:-10,5) — (axis cs:10,5);\addplot [domain=-5:5, samples=999, restrict y to domain=-30:30,smooth,thick] {sqrt(16-x^2)};
\draw (axis cs:4,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:-4,0) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`Un altro problema. Come disegno la radice cubica? Il meglio che ho trovato è:
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.4\textwidth,
axis lines=middle,
xmin=-5,xmax=5,ymin=-2,ymax=2,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,
title={$y=\sqrt[n]{x}$, $n$ naturale dispari $\ge1$}]]\addplot [domain=0:6, samples=999, restrict y to domain=-30:30,smooth,grafico] {e^(ln(x)/3)};
\addplot [domain=-6:0, samples=499, restrict y to domain=-30:30,smooth,grafico] {-e^(ln(abs(x))/3)};
\end{axis}
\end{tikzpicture}`
Suggerimenti per migliorare il codice ma soprattutto il risultato?Grazie mille! 🙂
-
5 Novembre 2014 alle 13:12 #96741::
lorenzo.pantieri” post=97609E quindi? Che cosa devo fare in concreto per disegnare quella griglia?
Così non ti piace?
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.7\textwidth,
axis equal,
axis lines=middle,
xmin=-4,xmax=4,ymin=-1,ymax=5,
enlargelimits={abs=0.5},
xtick={-4,…,4}, xticklabels={},
ytick={-1,…,5}, yticklabels={},
grid,
xlabel=$x$,
ylabel=$y$]
\draw [thick] (axis cs:4,0) to [out=90, in=0] (axis cs:0,4)
to [out=180, in=90] (axis cs:-4,0);
\draw (axis cs:4,0) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:-4,0) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`
-
5 Novembre 2014 alle 14:07 #96742::
lorenzo.pantieri” post=97609Un altro problema. Come disegno la radice cubica?
`\addplot [domain=-6:6, samples=50, grafico, hobby] {(x<0?-1:1)*abs(x)^(1/3)};`
Devi prima caricare la libreria [tt]hobby[/tt] con
`\usetikzlibrary{hobby}`
Ti do un consiglio: lascia perdere [tt]smooth[/tt] e usa sempre [tt]hobby[/tt] che è un algoritmo più efficiente (nota che bastano 50 campioni in totale). Se non vuoi modificare tutti i codici che hai scritto finora, inserisci nel preambolo
`\tikzset{smooth/.style=hobby}`
e continua a usare [tt]smooth[/tt] che però sarà un alias di [tt]hobby[/tt].La funzione [tt](x<0?-1:1)[/tt] è la funzione segno, che potresti anche scrivere [tt](-1+2*(x>0))[/tt].
P.S.: ti faccio notare che “n naturale dispari >=1” è un po’ sovrabbondante.
-
5 Novembre 2014 alle 16:17 #96743::
La tua soluzione funziona perfettamente, Luigi: grazie mille! 🙂Quanto a mettere tutti i grafici in hobby, ci ho provato, ma allunga tantissimo il tempo di compilazione (almeno, lasciando “samples” a 200). Appena ho un secondo prova ad abbassare tutti i “samples” a 50, e a ricompilare tutti i grafici con “hobby”.
Anche questa cosa la metto nel file con i tuoi consigli che ancora non ho avuto il tempo materiale di mettere in pratica. Ma, come ti dicevo, in questa fase sono impegnato a finire il lavoro il più preso possibile. Dopo di che, via di labor limae. 🙂
Grazie ancora,
L.
-
7 Novembre 2014 alle 16:48 #96744
-
23 Novembre 2014 alle 5:46 #96745::
Buongiorno a tutti.Ho il seguente disegno:
`\documentclass{article}
\usepackage{tikz,pgfplots,xcolor}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.8\textwidth,
axis lines=middle,
xmin=-0.25,xmax=5,ymin=-1,ymax=10,
enlargelimits,
xtick=\empty,
ytick={2,8},
yticklabels={$f(a)$,$f(a+h)$},
xlabel=$x$,
ylabel=$y$]\draw [dashed] (axis cs:1,-1.5) — (axis cs:1,2);
\draw [dashed] (axis cs:4.75,2) — (axis cs:0,2);\draw [dashed] (axis cs:3,-1.5) — (axis cs:3,8);
\draw [dashed] (axis cs:4.75,8) — (axis cs:0,8);\draw [dashed,latex-latex] (axis cs:4,2) — (axis cs:4,8);
\draw [dashed,latex-latex] (axis cs:1,-1) — (axis cs:3,-1);\addplot [domain=-5:5, samples=200, restrict y to domain=-30:30,smooth,very thick] {2^x};
\addplot [domain=-5:5, samples=200, restrict y to domain=-30:30,smooth] {2*x};
\addplot [domain=-5:5, samples=200, restrict y to domain=-30:30,smooth,green] {3*x-1};
\addplot [domain=-5:5, samples=200, restrict y to domain=-30:30,smooth,thick,red] {1.386294361*x+0.613705639};\begin{scope}[text height=1ex, text depth=0pt]
\node [below right] at (axis cs:1,0) {$a$};
\node [below right] at (axis cs:3,0) {$a+h$};
\end{scope}\node [above=2pt] at (axis cs:1,2) {$P$};
\node [above left] at (axis cs:3,8) {$Q$};\node
at (axis cs:4,5) {$f(a+h)-f(a)$};
\node [below] at (axis cs:2,-1) {$h$};\node [below] at (axis cs:3,4) {\color{red}retta tangente};
\node [below] at (axis cs:4.35,10.5) {rette secanti};
\node [below] at (axis cs:2.85,10.5) {\color{blue}$y=f(x)$};\draw (axis cs:1,2) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:2,4) [blue,fill=blue,very thick] circle (2.0pt);
\draw (axis cs:3,8) [blue,fill=blue,very thick] circle (2.0pt);%\draw (axis cs:1,2) ++(54.195:40mm) arc (54.195:71.56:40mm);
\end{axis}
\end{tikzpicture}\end{document}`
Vorrei aggiungere un bell’arco di circonferenza di centro P(1,2) che colleghi le retta (secante, in verde) $y=3x-1$ con la retta (tangente, in rosso) $y=2\ln 2 x+2-\ln 2$, quest’ultima approssimativamente uguale a $y=1.38x+0.61$. Ho fatto i calcoli e gli angoli dovrebbero essere 54.195 gradi e 71.565 gradi.Non ci riesco.
Qualcuno mi aiuta?
Grazie anticipate! 🙂
-
23 Novembre 2014 alle 8:30 #96746::
Un secondo problema.
`\documentclass{article}
\usepackage{tikz}
\begin{document}
Costruiamo la tabella dei segni della derivata.
%
\begin{center}
\begin{tikzpicture}[font=\small,x=10mm, y=10mm]\draw [->] (0,0) — (8,0) node [below right] () {$r$};
\foreach \x in {2,4,6}{
\draw (\x,3pt)–(\x,-3pt);\begin{scope} [dotted]
\draw (\x,0) — (\x,-3.5);
\end{scope}}\node at (-0.25,-0.5) {$N$};
\node at (-0.25,-1.0) {$D$};
\node at (-0.25,-2.0) {$f'$};
\node at (-0.25,-3.0) {$f$};\node [above] at (2,0) {$-1$};
\node [above] at (4,0) {$0$};
\node [above] at (6,0) {$1$};\node at (1,-0.5) {$-$};
\node at (3,-0.5) {$-$};
\node at (5,-0.5) {$+$};
\node at (7,-0.5) {$+$};\node at (1,-1.0) {$+$};
\node at (3,-1.0) {$+$};
\node at (5,-1.0) {$+$};
\node at (7,-1.0) {$+$};\node at (1,-2.0) {$-$};
\node at (3,-2.0) {$-$};
\node at (5,-2.0) {$+$};
\node at (7,-2.0) {$+$};\draw [fill=black] (4,-0.5) circle (2.0pt);
\draw [fill=black] (2,-1.0) circle (2.0pt);
\draw [fill=black] (6,-1.0) circle (2.0pt);\draw [fill=white] (2,-2.0) circle (2.0pt);
\draw [fill=black] (4,-2.0) circle (2.0pt);
\draw [fill=white] (6,-2.0) circle (2.0pt);\draw [very thick,->] (0.5,-2.5) — (1.5,-3.5);
\draw [very thick,->] (2.5,-2.5) — (3.5,-3.5);
\draw [very thick,->] (4.5,-3.5) — (5.5,-2.5);
\draw [very thick,->] (6.5,-3.5) — (7.5,-2.5);\node [above] at (4,-2.5) {$\min$};
\end{tikzpicture}
\end{center}Costruiamo la tabella dei segni della derivata seconda.
%
\begin{center}
\begin{tikzpicture}[font=\small,x=10mm, y=10mm]\draw [->] (0,0) — (6,0) node [below right] () {$r$};
\foreach \x in {2,4}{
\draw (\x,3pt)–(\x,-3pt);\begin{scope} [dotted]
\draw (\x,0) — (\x,-3.0);
\end{scope}}\node at (-0.25,-0.5) {$N$};
\node at (-0.25,-1.0) {$D$};
\node at (-0.25,-2.0) {$f''$};
\node at (-0.25,-3.0) {$f$};\node [above] at (2,0) {$-1$};
\node [above] at (4,0) {$1$};\node at (1,-0.5) {$-$};
\node at (3,-0.5) {$-$};
\node at (5,-0.5) {$-$};\node at (1,-1.0) {$+$};
\node at (3,-1.0) {$-$};
\node at (5,-1.0) {$+$};\node at (1,-2.0) {$+$};
\node at (3,-2.0) {$-$};
\node at (5,-2.0) {$+$};\draw [fill] (2,-1.0) circle (2.0pt);
\draw [fill] (4,-1.0) circle (2.0pt);\draw [fill=white] (2,-2.0) circle (2.0pt);
\draw [fill=white] (4,-2.0) circle (2.0pt);\draw [very thick] (0.5,-3.0) parabola bend (1,-2.5) (1.5,-3.0);
\draw [very thick] (2.5,-2.5) parabola bend (3,-3.0) (3.5,-2.5);
\draw [very thick] (4.5,-3.0) parabola bend (5,-2.5) (5.5,-3.0);
\end{tikzpicture}
\end{center}\end{document}`
Le due tabelle sono costruite artigianalmente, ma con un po’ di pazienza si riescono a comporre e ad adattare a tutti i casi che mi interessano. Il problema che ho è questo: le frecce nella prima tabella mi piacciono, ma le parabole nella seconda sono tropo basse e sacrificate. Riuscite a dirmi come modificare il codice delle parabole della seconda tabella, per averle alte e larghe quanto le frecce della prima?Il codice, poi, deve essere modificabile, quindi i numeri devono essere semplici.
Ah, se volete il contesto in cui quelle tabelle verranno utilizzate:
http://www.lorenzopantieri.net/Matematica_files/Quinta.pdf
Ancora grazie!
-
23 Novembre 2014 alle 12:44 #96747
-
24 Novembre 2014 alle 17:11 #96748::
lorenzo.pantieri” post=98118Vorrei aggiungere un bell’arco di circonferenza di centro P(1,2) che colleghi le retta (secante, in verde) $y=3x-1$ con la retta (tangente, in rosso) $y=2\ln 2 x+2-\ln 2$, quest’ultima approssimativamente uguale a $y=1.38x+0.61$. Ho fatto i calcoli e gli angoli dovrebbero essere 54.195 gradi e 71.565 gradi.
Ecco qua:
`\pgfplotsextra{
\pgfplotstransformdirectionx{1}
\pgfmathsetlengthmacro{\ex}{\pgfmathresult*\pgfplotsunitxlength}
\pgfplotstransformdirectiony{1}
\pgfmathsetlengthmacro{\ey}{\pgfmathresult*\pgfplotsunitylength}
\pgfmathsetmacro{\pd}{\ey/\ex}
}
\draw (axis cs:1,2) ++({atan(2*ln(2)*\pd)}:40mm)
arc ({atan(2*ln(2)*\pd)}:{atan(3*\pd)}:40mm);`
La macro [tt]\pd[/tt] contiene il rapporto tra le lunghezze dei versori della base.Ciao
-
24 Novembre 2014 alle 17:22 #96749::
lorenzo.pantieri” post=98122Riuscite a dirmi come modificare il codice delle parabole della seconda tabella, per averle alte e larghe quanto le frecce della prima?
Le frecce sono alte e larghe 1 cm. Le parabole sono larghe 1 cm e alte 5 mm. Quindi:
`\draw [very thick] (0.5,-3.5) parabola bend (1,-2.5) (1.5,-3.5);
\draw [very thick] (2.5,-2.5) parabola bend (3,-3.5) (3.5,-2.5);
\draw [very thick] (4.5,-3.5) parabola bend (5,-2.5) (5.5,-3.5);`
-
27 Novembre 2014 alle 5:18 #96750
-
27 Novembre 2014 alle 18:30 #96751::
Ciao a tutti. Vorrei sapere perché nel codice seguente l’opzione “grid” non funziona… 🙁
`
\documentclass{article}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.55\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=4,ymin=-5,ymax=5,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\draw (axis cs:-2,-4) — (axis cs:1,-4);
\draw (axis cs:1,-4) — (axis cs:2,3);
\draw (axis cs:-4,4) — (axis cs:-2,-4);\addplot [domain=-5:-4, samples=200, restrict y to domain=-10:10,smooth,dashed] {-4*x-12};
\draw (axis cs:2,3) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}
\end{document}
`
Grazie mille,
Lorenzo
-
28 Novembre 2014 alle 4:17 #96752::
Ciao a tutti. Nel codice seguente, come si fa a togliere i numeri dagli assi, lasciando la griglia?
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.55\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=4,ymin=-5,ymax=5,
enlargelimits,
xtick={-5,…,4},
ytick={-5,…,5},
xlabel=$x$,
ylabel=$y$,grid]\draw [grafico] (axis cs:-2,-4) — (axis cs:1,-4);
\draw [grafico] (axis cs:1,-4) — (axis cs:2,3);
\draw [grafico] (axis cs:-4,4) — (axis cs:-2,-4);\addplot [domain=-5:-4, samples=200, restrict y to domain=-10:10,smooth,very thick,blue,dashed] {-4*x-12};
\draw (axis cs:2,3) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`
Se al posto di
` xtick={-5,…,4},
ytick={-5,…,5},
`
metto
` xtick=\empty,
ytick=\empty,
`
la griglia sparisce. Se aggiungo le righe
` xticklabels={,,,,,,,,,,},
yticklabels={,,,,,,,,,,},
`
funziona, ma chiedevo se c’è una soluzione è elegante.Grazie 1000,
L.
-
28 Novembre 2014 alle 7:31 #96753::
lorenzo.pantieri” post=98263Ciao a tutti. Nel codice seguente, come si fa a togliere i numeri dagli assi, lasciando la griglia?
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.55\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=4,ymin=-5,ymax=5,
enlargelimits,
xtick={-5,…,4},
ytick={-5,…,5},
xlabel=$x$,
ylabel=$y$,grid]\draw [grafico] (axis cs:-2,-4) — (axis cs:1,-4);
\draw [grafico] (axis cs:1,-4) — (axis cs:2,3);
\draw [grafico] (axis cs:-4,4) — (axis cs:-2,-4);\addplot [domain=-5:-4, samples=200, restrict y to domain=-10:10,smooth,very thick,blue,dashed] {-4*x-12};
\draw (axis cs:2,3) [blue,fill=blue,very thick] circle (2.0pt);
\end{axis}
\end{tikzpicture}`
Se al posto di
` xtick={-5,…,4},
ytick={-5,…,5},
`
metto
` xtick=\empty,
ytick=\empty,
`
la griglia sparisce. Se aggiungo le righe
` xticklabels={,,,,,,,,,,},
yticklabels={,,,,,,,,,,},
`
funziona, ma chiedevo se c’è una soluzione è elegante.Grazie 1000,
L.Prova con: `\documentclass[tikz]{standalone}
\usepackage{pgfplots,amsmath}\begin{document}
\begin{tikzpicture}[font=\small, grafico/.style={blue,very thick}]
\begin{axis} [width=0.55\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=4,ymin=-5,ymax=5,
enlargelimits,
xtick={-5,…,4},% <= necessario ytick={-5,...,5},% <= necessario xticklabels={},% <= nessuna etichetta yticklabels={},% <= nessuna etichetta xlabel=$x$, ylabel=$y$,grid] \draw [grafico] (axis cs:-2,-4) -- (axis cs:1,-4); \draw [grafico] (axis cs:1,-4) -- (axis cs:2,3); \draw [grafico] (axis cs:-4,4) -- (axis cs:-2,-4); \addplot [domain=-5:-4, samples=200, restrict y to domain=-10:10,smooth,very thick,blue,dashed] {-4*x-12}; \draw (axis cs:2,3) [blue,fill=blue,very thick] circle (2.0pt); \end{axis} \end{tikzpicture} \end{document}` Ciao Claudio -
15 Dicembre 2014 alle 16:43 #96754::
Ciao a tutti.
`\begin{tikzpicture}
\node (esp) at (0,0) {$2^3=\underbrace{2\cdot 2\cdot 2}_{3 \text{ volte}} = 8$};
\begin{scope}[font=\small]
\draw[<-] (-1.0,.6)--(-0.8,.8) node[right] {esponente}; \draw[->] (-1.5,-.1)–(-1.3,.1) node[below left=.2] {base};
\draw[<-] (1.6,.1)--(1.8,-.1) node[below right] {potenza }; \end{scope} \end{tikzpicture}` Come si può rendere migliore questo disegno? Il posizionamento delle frecce è molto approssimativo, ma andare per tentativi è un delirio. Come fare? Grazie anticipate, Lorenzo -
15 Dicembre 2014 alle 18:11 #96755::
lorenzo.pantieri” post=98690Ciao a tutti.
`\begin{tikzpicture}
\node (esp) at (0,0) {$2^3=\underbrace{2\cdot 2\cdot 2}_{3 \text{ volte}} = 8$};
\begin{scope}[font=\small]
\draw[<-] (-1.0,.6)--(-0.8,.8) node[right] {esponente}; \draw[->] (-1.5,-.1)–(-1.3,.1) node[below left=.2] {base};
\draw[<-] (1.6,.1)--(1.8,-.1) node[below right] {potenza }; \end{scope} \end{tikzpicture}` Come si può rendere migliore questo disegno? Il posizionamento delle frecce è molto approssimativo, ma andare per tentativi è un delirio. Come fare? Grazie anticipate, LorenzoHai provato a dare un occhiata al pacchetto hf-tikz? Credo che faccia al caso tuo.
Lorenzo
-
16 Dicembre 2014 alle 5:39 #96756::
lorenzo.pantieri” post=98690Come si può rendere migliore questo disegno? Il posizionamento delle frecce è molto approssimativo, ma andare per tentativi è un delirio.
Come fare?
Ci credo sia un delirio: non sfrutti minimamente le informazioni che i nodi ti danno.
Il problema principale in qualsiasi disegno è posizionare gli elementi: o lo fai a mano (il tuo approccio) o sfrutti metodi intelligenti che il software ti mette a disposizione. In questo caso, tu hai inserito in un nodo la tua equazione: ottimo! Vuol dire che di quel nodo conosci tutti i bordi e ci puoi accedere con la sintassi [tt]nome nodo.ancora[/tt]. Per ottenere i punti intermedi ai bordi puoi sfruttare la libreria calc.
Quindi: `\documentclass[tikz,border=10pt]{standalone}
\usepackage{amsmath}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[inner sep=1pt]
\node (esp) at (0,0) {$2^3=\underbrace{2\cdot 2\cdot 2}_{3 \text{ volte}} = 8$};
\begin{scope}[font=\small,>=stealth,<-] \draw ($(esp.north west)!0.3!(esp.north)$)--++(45:2mm) node[above right, inner sep=0pt] {esponente}; \draw ($(esp.north west)!0.75!(esp.west)$)--++(225:2mm) node[below left=.2] {base}; \draw ($(esp.north east)!0.75!(esp.east)$)--++(315:2mm) node[below right] {potenza }; \end{scope} \end{tikzpicture} \begin{tikzpicture}[inner sep=1pt] \node[draw] (esp) at (0,0) {$2^3=\underbrace{2\cdot 2\cdot 2}_{3 \text{ volte}} = 8$}; \foreach \anchor/\placement in {($(esp.north west)!0.3!(esp.north)$)/above, ($(esp.north west)!0.75!(esp.west)$)/left, ($(esp.north east)!0.75!(esp.east)$)/right} \draw[draw=red] plot[mark=x] coordinates{\anchor} node[\placement] {\tiny\anchor}; \foreach \anchor in {north west, north, north east, west, east, south west, south, south east} \draw[draw=blue,shift=(esp.\anchor)] plot[mark=x] coordinates{(0,0)}; \end{tikzpicture} \end{document} ` Nella seconda figura [attachment=1216]ScreenShot2014-12-16at7.38.56AM.png[/attachment] in blu ci sono le ancore predefinite mentre in rosso quelle che servono a te. Ciao ClaudioAttachments:
You must be logged in to view attached files. -
24 Dicembre 2014 alle 6:46 #96757::
cfiandra” post=98698
Ci credo sia un delirio: non sfrutti minimamente le informazioni che i nodi ti danno.Il problema principale in qualsiasi disegno è posizionare gli elementi: o lo fai a mano (il tuo approccio) o sfrutti metodi intelligenti che il software ti mette a disposizione. In questo caso, tu hai inserito in un nodo la tua equazione: ottimo! Vuol dire che di quel nodo conosci tutti i bordi e ci puoi accedere con la sintassi [tt]nome nodo.ancora[/tt]. Per ottenere i punti intermedi ai bordi puoi sfruttare la libreria calc.
Ringrazio con enorme ritardo Claudio per le sue indicazioni, perfette. Ma ecco un altro problema che riguarda il disegno di un arco (cosa che mi risulta sempre indigesta).
`\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.55\textwidth,scale mode=scale uniformly,
axis lines=middle,
xmin=-5,xmax=5,ymin=-5,ymax=5,
enlargelimits,
xtick={-5,…,5},
ytick={-5,…,5},
xticklabels={},
yticklabels={},
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=-10:10, samples=200, restrict y to domain=-30:30,smooth,grafico] {x-1};
\draw [->] (axis cs:2,0) arc (0:45:1);
\end{axis}
\end{tikzpicture}`
Quello che voglio fare è “mettere in evidenza l’angolo formato dalla retta con l’asse x”, ovvero disegnare un arco partendo dal punto (2,0) che termini sulla retta. Perché il codice non funziona? Come fare?Tempo fa Liverpool mi suggerì per un problema analogo un codice del tipo:
`\pgfplotsextra{\pgfmathsetmacro{\pd}{\pgfplotsunitylength/(10*\pgfplotsunitxlength)}}
\draw [->] (axis cs:1,0) ++({atan(2*ln(2)*\pd)}:40mm) arc ({atan(2*ln(2)*\pd)}:{atan(3*\pd)}:40mm);
`
ma non lo capisco, quindi non so usarlo.Grazie anticipate!
L.
-
24 Dicembre 2014 alle 13:45 #96758::
`\pgfplotsextra{
\pgfplotstransformdirectionx{1}
\pgfmathsetlengthmacro{\ex}{\pgfmathresult*\pgfplotsunitxlength}
}\draw [->] (axis cs:2,0) arc (0:45:\ex);`
[tt]\ex[/tt] è l’unità di misura delle lunghezze per l’asse delle ascisse e ti serve al posto di 1 nell’istruzione per generare l’arco affinché pgfplots intenta 1 unità di misura. In questo caso, avendo usato un sistema di riferimento monometrico, puoi scrivere direttamente [tt]45[/tt] come misura di ampiezza dell’arco.Ciao
-
24 Dicembre 2014 alle 15:49 #96759::
Liverpool” post=98845`\pgfplotsextra{
\pgfplotstransformdirectionx{1}
\pgfmathsetlengthmacro{\ex}{\pgfmathresult*\pgfplotsunitxlength}
}\draw [->] (axis cs:2,0) arc (0:45:\ex);`
[tt]\ex[/tt] è l’unità di misura delle lunghezze per l’asse delle ascisse e ti serve al posto di 1 nell’istruzione per generare l’arco affinché pgfplots intenta 1 unità di misura. In questo caso, avendo usato un sistema di riferimento monometrico, puoi scrivere direttamente [tt]45[/tt] come misura di ampiezza dell’arco.Perfetto! 🙂 Questo sì che è un regalo di Natale! 🙂
Grazie mille, Luigi! 🙂
Lorenzo
-
25 Dicembre 2014 alle 10:34 #96760::
Auguri a tutti, innanzitutto! 🙂
`\documentclass{article}
\usepackage{tikz,pgfplots}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.8\textwidth,
axis lines=middle,
xmin=0,xmax=18,ymin=0,ymax=120,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=0:100, samples=200,smooth,] {5*x+25};
\addplot [domain=0:100, samples=200,smooth,thick,blue,red] {7*x+15};
\addplot [domain=0:100, samples=200,smooth,thick,blue,green] {85};\addplot [domain=-100:0, samples=200,smooth,thick,blue,dashed] {5*x+25};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,red,dashed] {7*x+15};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,green,dashed] {85};%\addplot [domain=12:100, samples=200,smooth,thick,blue,yellow,ultra thick] {85};
%\addplot [domain=5:12, samples=200,smooth,thick,blue,yellow,ultra thick] {5*x+25};
%\addplot [domain=0:5, samples=200,smooth,thick,blue,yellow,ultra thick] {7*x+15};
%\addplot [domain=-100:0, samples=200,smooth,thick,blue,yellow,ultra thick,dashed] {7*x+15};\draw (axis cs:5,50) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:5,50) {$A$};\draw (axis cs:10,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:10,85) {$B$};\draw (axis cs:12,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:12,85) {$C$};\draw [dashed] (axis cs:5,0) — (axis cs:5,50);
\draw [dashed] (axis cs:0,50) — (axis cs:5,50);\draw [dashed] (axis cs:10,0) — (axis cs:10,85);
\draw [dashed] (axis cs:12,0) — (axis cs:12,85);
\node [below] at (axis cs:5,0) {$5$};
\node [below] at (axis cs:10,0) {$10$};
\node [below] at (axis cs:12,0) {$12$};\node
at (axis cs:0,50) {$50$};
\nodeat (axis cs:0,85) {$85$};
\node [below] at (axis cs:18,105) {\color{blue}$y=5x+25$};
\node at (axis cs:12,120) {\color{red}$y=7x+15$};
\node [below] at (axis cs:18,85) {\color{green}$y=85$};
\end{axis}
\end{tikzpicture}\end{document}`
Nel disegno precedente vorrei evidenziare “la parte in basso della spezzata”. Se decommentate le quattro righe che ora sono commentate avete un’idea di che cosa voglio fare. Quello che vorrei, però, è evidenziare la spezzata lasciando intravedere i segmenti (colorati in rosso, blu e verde) da cui è costituita.Pensavo a un’onda (tipo una sinusoide) che “sbiscioli” i tre segmenti, ma non so come farla.
Suggerimenti?
Grazie, e ancora auguri! 🙂
L.
-
25 Dicembre 2014 alle 11:04 #96761::
lorenzo.pantieri” post=98864Auguri a tutti, innanzitutto! 🙂
`\documentclass{article}
\usepackage{tikz,pgfplots}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.8\textwidth,
axis lines=middle,
xmin=0,xmax=18,ymin=0,ymax=120,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=0:100, samples=200,smooth,] {5*x+25};
\addplot [domain=0:100, samples=200,smooth,thick,blue,red] {7*x+15};
\addplot [domain=0:100, samples=200,smooth,thick,blue,green] {85};\addplot [domain=-100:0, samples=200,smooth,thick,blue,dashed] {5*x+25};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,red,dashed] {7*x+15};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,green,dashed] {85};%\addplot [domain=12:100, samples=200,smooth,thick,blue,yellow,ultra thick] {85};
%\addplot [domain=5:12, samples=200,smooth,thick,blue,yellow,ultra thick] {5*x+25};
%\addplot [domain=0:5, samples=200,smooth,thick,blue,yellow,ultra thick] {7*x+15};
%\addplot [domain=-100:0, samples=200,smooth,thick,blue,yellow,ultra thick,dashed] {7*x+15};\draw (axis cs:5,50) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:5,50) {$A$};\draw (axis cs:10,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:10,85) {$B$};\draw (axis cs:12,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:12,85) {$C$};\draw [dashed] (axis cs:5,0) — (axis cs:5,50);
\draw [dashed] (axis cs:0,50) — (axis cs:5,50);\draw [dashed] (axis cs:10,0) — (axis cs:10,85);
\draw [dashed] (axis cs:12,0) — (axis cs:12,85);
\node [below] at (axis cs:5,0) {$5$};
\node [below] at (axis cs:10,0) {$10$};
\node [below] at (axis cs:12,0) {$12$};\node
at (axis cs:0,50) {$50$};
\nodeat (axis cs:0,85) {$85$};
\node [below] at (axis cs:18,105) {\color{blue}$y=5x+25$};
\node at (axis cs:12,120) {\color{red}$y=7x+15$};
\node [below] at (axis cs:18,85) {\color{green}$y=85$};
\end{axis}
\end{tikzpicture}\end{document}`
Nel disegno precedente vorrei evidenziare “la parte in basso della spezzata”. Se decommentate le quattro righe che ora sono commentate avete un’idea di che cosa voglio fare. Quello che vorrei, però, è evidenziare la spezzata lasciando intravedere i segmenti (colorati in rosso, blu e verde) da cui è costituita.Pensavo a un’onda (tipo una sinusoide) che “sbiscioli” i tre segmenti, ma non so come farla.
Suggerimenti?
Grazie, e ancora auguri! 🙂
L.Auguri!! Prova così: `\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{backgrounds}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.8\textwidth,
axis lines=middle,
xmin=0,xmax=18,ymin=0,ymax=120,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]% racchiudiamo in un gruppo e aumentiamo la dimensione del tratto:
% avendo inserito questo codice prima di tutto il resto automaticamente
% sarà in background e non coprirà gli altri segmenti
\begin{scope}[opacity=0.8,line width=2mm,yellow!80!orange]
\addplot [domain=12:100, samples=200,smooth,ultra thick] {85};
\addplot [domain=5:12, samples=200,smooth,ultra thick] {5*x+25};
\addplot [domain=0:5, samples=200,smooth,ultra thick] {7*x+15};
\addplot [domain=-100:0, samples=200,smooth,ultra thick,dashed] {7*x+15};
\end{scope}\addplot [domain=0:100, samples=200,smooth,] {5*x+25};
\addplot [domain=0:100, samples=200,smooth,thick,blue,red] {7*x+15};
\addplot [domain=0:100, samples=200,smooth,thick,blue,green] {85};\addplot [domain=-100:0, samples=200,smooth,thick,blue,dashed] {5*x+25};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,red,dashed] {7*x+15};
\addplot [domain=-100:0, samples=200,smooth,thick,blue,green,dashed] {85};\draw (axis cs:5,50) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:5,50) {$A$};\draw (axis cs:10,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:10,85) {$B$};\draw (axis cs:12,85) [fill=blue,thick] circle (2.0pt);
\node [above=2pt] at (axis cs:12,85) {$C$};\draw [dashed] (axis cs:5,0) — (axis cs:5,50);
\draw [dashed] (axis cs:0,50) — (axis cs:5,50);\draw [dashed] (axis cs:10,0) — (axis cs:10,85);
\draw [dashed] (axis cs:12,0) — (axis cs:12,85);
\node [below] at (axis cs:5,0) {$5$};
\node [below] at (axis cs:10,0) {$10$};
\node [below] at (axis cs:12,0) {$12$};\node
at (axis cs:0,50) {$50$};
\nodeat (axis cs:0,85) {$85$};
% qui io lascerei in nero il testo anche se capisco l'utilità del colore: il problema è il verde, troppo chiaro anche a schermo
\node [below] at (axis cs:18,105) {\color{blue}$y=5x+25$};
\node at (axis cs:12,120) {\color{red}$y=7x+15$};
\node [below] at (axis cs:18,85) {\color{green}$y=85$};
\end{axis}
\end{tikzpicture}\end{document}` Ho lasciato alcuni commenti nel codice.
In alternativa, c’è sempre la possibilità di creare qualcosa di più morbido con hobby, come Highlighting some nodes of a TikZ binomial tree. In questo caso però è complicato definire il percorso.
Ciao
Claudio
-
25 Dicembre 2014 alle 12:38 #96762
-
28 Dicembre 2014 alle 14:55 #96763::
Ciao a tutti.
`\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-20,xmax=600,ymin=-5000,ymax=4000,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};\draw (axis cs:400,-10000) — (axis cs:400,10000);
\node [below] at (axis cs:400,0) {$400$};\node (a1) at (axis cs:550,3500) {Zona di utile};
\node (b1) at (axis cs:200,-4000) {Zona di perdita};\node (a2) at (axis cs:350,2000) {};
\node (b2) at (axis cs:30,-1500) {};\draw [->] (a1.south) — (a2.center);
\draw [->] (b1.north) — (b2.center);
\end{axis}
\end{tikzpicture}
\end{document}`
In questa figura vorrei colorare di blu la zona di utile (compresa tra la parabola, l’asse x e la retta verticale y=400) e in rosso la zona di perdita (compresa tra la parabola, l’asse y e l’asse x).Come faccio?
Grazie anticipate,
LorenzoCome faccio?
-
29 Dicembre 2014 alle 8:00 #96764::
lorenzo.pantieri” post=98928Ciao a tutti.
`\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-20,xmax=600,ymin=-5000,ymax=4000,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};\draw (axis cs:400,-10000) — (axis cs:400,10000);
\node [below] at (axis cs:400,0) {$400$};\node (a1) at (axis cs:550,3500) {Zona di utile};
\node (b1) at (axis cs:200,-4000) {Zona di perdita};\node (a2) at (axis cs:350,2000) {};
\node (b2) at (axis cs:30,-1500) {};\draw [->] (a1.south) — (a2.center);
\draw [->] (b1.north) — (b2.center);
\end{axis}
\end{tikzpicture}
\end{document}`
In questa figura vorrei colorare di blu la zona di utile (compresa tra la parabola, l’asse x e la retta verticale y=400) e in rosso la zona di perdita (compresa tra la parabola, l’asse y e l’asse x).Come faccio?
Grazie anticipate,
LorenzoCome faccio?
Per questo tipo di necessità, la libreria [tt]fillbetween[/tt] è quello che serve.
In pratica basta dare dei nomi ai plot (in generale si può applicare ad ogni path) che delimitano la zona da colorare e successivamente inserire il colore con un costrutto: `
\addplot []fill between[of= and ];
` Quindi: `
\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc}
\usepgfplotslibrary{fillbetween}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-20,xmax=600,ymin=-5000,ymax=4000,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\addplot [domain=0:400, samples=200,smooth,very thick,blue,name path global=parabola] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};\draw[name path=retta] (axis cs:400,10000) — (axis cs:400,-5000)node[below]{$400$};% opzione 2
\node [below right] at (axis cs:400,0) {$400$};% opzione 1% riempimento
\addplot [fill=blue!50!cyan!20]fill between[of=retta and parabola];\node (a1) at (axis cs:550,3500) {Zona di utile};
\node (b1) at (axis cs:200,-4000) {Zona di perdita};\node (a2) at (axis cs:350,2000) {};
\node (b2) at (axis cs:30,-1500) {};\draw [->] (a1.south) — (a2.center);
\draw [->] (b1.north) — (b2.center);
\end{axis}
\end{tikzpicture}
\end{document}
` Ho anche proposto un paio di alternative per inserire l’etichetta 400 non sopra l’asintoto.Ciao
Claudio
-
29 Dicembre 2014 alle 8:39 #96765::
cfiandra” post=98945
Per questo tipo di necessità, la libreria [tt]fillbetween[/tt] è quello che serve.Grazie mille, Claudio. Ho appena controllato, e ho visto che purtroppo questa libreria non è compresa nella mia MacTeX 2013. Sono restio ad aggiornare il tutto: sto lavorando a dei documenti che sono quasi terminati, e so che quando si aggiorna la distribuzione è necessario investire tempo (a volte molto) per mettere le cose a punto.
È possibile usare quella libreria senza fare l’aggiornamento della distribuziuone?
Ho provato a scaricare da CTAN il file “pgflibrarypgfplots.fillbetween.code.tex” e a metterlo nella carrella di lavoro, ma compilando il tuo documento ricevo questo errore:
`Package pgfplots Warning: running in backwards compatibility mode (unsuitable t
ick labels; missing features). Consider writing \pgfplotsset{compat=1.9} into y
our preamble.
on input line 5../prova 8.tex:17: Package pgfkeys Error: I do not know the key '/tikz/name path
global' and I am going to ignore it. Perhaps you misspelled it.See the pgfkeys package documentation for explanation.
Type Hfor immediate help.
…l.17 …ath global=parabola] {-0.1*x*x+60*x-5000};
?
Process aborted`
Che cosa mi consigli di fare?
-
29 Dicembre 2014 alle 9:16 #96766::
lorenzo.pantieri” post=98947Grazie mille, Claudio. Ho appena controllato, e ho visto che purtroppo questa libreria non è compresa nella mia MacTeX 2013. Sono restio ad aggiornare il tutto: sto lavorando a dei documenti che sono quasi terminati, e so che quando si aggiorna la distribuzione è necessario investire tempo (a volte molto) per mettere le cose a punto.
È possibile usare quella libreria senza fare l’aggiornamento della distribuziuone?
Ho provato a scaricare da CTAN il file “pgflibrarypgfplots.fillbetween.code.tex” e a metterlo nella carrella di lavoro, ma compilando il tuo documento ricevo questo errore:
`Package pgfplots Warning: running in backwards compatibility mode (unsuitable t
ick labels; missing features). Consider writing \pgfplotsset{compat=1.9} into y
our preamble.
on input line 5../prova 8.tex:17: Package pgfkeys Error: I do not know the key '/tikz/name path
global' and I am going to ignore it. Perhaps you misspelled it.See the pgfkeys package documentation for explanation.
Type Hfor immediate help.
…l.17 …ath global=parabola] {-0.1*x*x+60*x-5000};
?
Process aborted`
Che cosa mi consigli di fare?In effetti per quella libreria serve una versione di pgfplots più recente di quelle presenti in MacTeX 2013. Il che non è un problema: la libreria non fa altro che emulare funzionalità di clipping già presenti in TikZ.
Oltretutto, solo per questo specifico caso, la definizione della parabola aiuta molto. Infatti, tenendo presente che ogni plot non è altro che un percorso, la seguente definizione: `
\addplot [domain=0:400, samples=200,smooth,very thick,blue,fill=cyan] {-0.1*x*x+60*x-5000};
` colorerebbe lo sfondo compreso fra x=0 e x=400 della parabola (attenzione: non tutto lo sfondo, ma solo quello fra la parabola e un’ipotetica retta fra i due punti menzionati). Bisogna quindi far capire a pgfplots di tenere in considerazione l’asintoto. Anche qui, poiché un plot è un path, possiamo tranquillamente inserire dopo il normale costrutto [tt]\addplot[/tt] coordinate o altri operatori. Quindi: `
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
` risolve i nostri problemi. A questo punto l’unica differenza rispetto alla libreria è che il nostro sfondo copre l’asse x. Con il solito trucco del background possiamo aggirare l’ostacolo: `
\begin{pgfonlayer}{background}% richiede \usetikzlibrary{backgrounds}
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
\end{pgfonlayer}
` Inserirei questo codice prima dei plot: `
\begin{pgfonlayer}{background}
\addplot [domain=0:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,-5000);
\end{pgfonlayer}\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};
` Non è strettamente necessario, ma non fa male.Ciao
Claudio
-
29 Dicembre 2014 alle 10:41 #96767::
Allora Claudio, ci siamo quasi. Modificando leggermente i parametri del codice che mi hai suggerito sono riuscito a colorare la zona di utile.
`\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc,backgrounds}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-20,xmax=600,ymin=-5000,ymax=4000,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\begin{pgfonlayer}{background}
\addplot [domain=100:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,0);
\end{pgfonlayer}\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};\draw (axis cs:400,-10000) — (axis cs:400,10000);
\node [below] at (axis cs:400,0) {$400$};\node (a1) at (axis cs:550,3500) {Zona di utile};
\node (b1) at (axis cs:200,-4000) {Zona di perdita};\node (a2) at (axis cs:350,2000) {};
\node (b2) at (axis cs:30,-1500) {};\draw [->] (a1.south) — (a2.center);
\draw [->] (b1.north) — (b2.center);
\end{axis}
\end{tikzpicture}
\end{document}`
Ora mi resta da colorare in rosso la zona di perdita, che è quella specie di “triangolo”, sotto l’asse x, compreso tra l’asse x, l’asse y e la parabola, indicato dalla relativa freccia.Come si fa?
Ho provato a modificare il tuo codice, ma invano: da quanto capisco, il tuo codice permette di colorare l’area che sta sotto una curva, non sopra (come a me invece serve per la zona di perdita).
Non so davvero come ringraziarti, sai? 🙂
-
29 Dicembre 2014 alle 11:07 #96768::
Fantastico!!! Questo è il codice che ho usato per risolvere il problema:
`\documentclass{article}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc,backgrounds}
\begin{document}\begin{tikzpicture}[font=\small]
\begin{axis} [width=\textwidth,
axis lines=middle,
xmin=-20,xmax=600,ymin=-5000,ymax=4000,
enlargelimits,
xtick=\empty,
ytick=\empty,
xlabel=$x$,
ylabel=$y$,grid]\begin{pgfonlayer}{background}
\addplot [domain=100:400, samples=200,smooth,draw=none,fill=blue!50!cyan!20] {-0.1*x*x+60*x-5000} –(axis cs:400,0);
\end{pgfonlayer}\begin{pgfonlayer}{background}
\addplot [domain=0:100, samples=200,smooth,draw=none,fill=red!50!orange!20] {-0.1*x*x+60*x-5000} — (axis cs:0,0);
\end{pgfonlayer}\addplot [domain=0:400, samples=200,smooth,very thick,blue] {-0.1*x*x+60*x-5000};
\addplot [domain=400:600, samples=200,smooth,very thick,dashed] {-0.1*x*x+60*x-5000};\draw (axis cs:400,-10000) — (axis cs:400,10000);
\node [below] at (axis cs:400,0) {$400$};\node (a1) at (axis cs:550,3500) {Zona di utile};
\node (b1) at (axis cs:200,-4000) {Zona di perdita};\node (a2) at (axis cs:350,2000) {};
\node (b2) at (axis cs:30,-1500) {};\draw [->] (a1.south) — (a2.center);
\draw [->] (b1.north) — (b2.center);
\end{axis}
\end{tikzpicture}
\end{document}`
Grazie milla, Claudio, per il tuo preziosissimo aiuto!!! 🙂 🙂 🙂
-
1 Gennaio 2015 alle 10:08 #96769::
Ciao a tutti. Devo realizzare il seguente disegno.
Siccome ho molti disegni di questo tipo nel mio documento, ho bisogno di un metodo “solido”. Ho pensato di definire due nodi (uno per il primo e uno per l’ultimo termine del trinomio e di lavorare con quelli, ma poi sono in difficoltà con la spaziatura orizzontale nella formula (che deve essere quella standard) e con l’allineamento verticale…
Che dite?
-
2 Gennaio 2015 alle 8:01 #96770::
lorenzo.pantieri” post=99016Ciao a tutti. Devo realizzare il seguente disegno.

Siccome ho molti disegni di questo tipo nel mio documento, ho bisogno di un metodo “solido”. Ho pensato di definire due nodi (uno per il primo e uno per l’ultimo termine del trinomio e di lavorare con quelli, ma poi sono in difficoltà con la spaziatura orizzontale nella formula (che deve essere quella standard) e con l’allineamento verticale…
Che dite?
Secondo me raggiungere tutti gli obbiettivi contemporaneamente è complicato.
Per rispettare la spaziatura matematica al 100% si potrebbe pensare di usare hf-tikz con la sua opzione markings. A quel punto però ogni volta devi andare a calcolarti la posizione dei marcatori per poi disegnare le frecce: addio solidità.
Dall’altra parte, se utilizzi solo TikZ e vedi il polinomio come matrice dove ogni elemento è una cella ti diventa molto facile disegnare le frecce. Il sistema è estremamente solido perché basta copia-incollare e sostituire i valori del polinomio, ma si perde la spaziatura matematica.
Ciao
Claudio
-
2 Gennaio 2015 alle 9:16 #96771::
lorenzo.pantieri” post=99016Ciao a tutti. Devo realizzare il seguente disegno.

Siccome ho molti disegni di questo tipo nel mio documento, ho bisogno di un metodo “solido”. Ho pensato di definire due nodi (uno per il primo e uno per l’ultimo termine del trinomio e di lavorare con quelli, ma poi sono in difficoltà con la spaziatura orizzontale nella formula (che deve essere quella standard) e con l’allineamento verticale…
Che dite?
Non vedo perché devi volere a tutti i costi fare dell’alta acrobazia senza rete. Le dispense che stai scrivendo non sono un lavagna, e non sono nemmeno una presentazione PowerPoint, ma sono un testo tipocomposto.
Claudio (F.) ti ha spiegato perché non puoi avere la moglie ubriaca e la botte piena; io con l’ambiente rudimentale picture credo che saprei farlo, ovviamente senza tutti gli automatismi di TikZ, ma non lo faccio perché lo trovo inutile; infatti il tuo scopo con quel disegno ardito è quello di mostrare che il polinomio è un quadrato perfetto; perché allora non fai semplicemente i passaggi?`\[
a^2 + 8a + 16 = a^2 + 2\times 4 a + 4^2 = (a+4)^2
\]`A me parrebbe molto più chiaro e molto meno acrobatico.
-
2 Gennaio 2015 alle 9:19 #96772::
OldClaudioNon vedo perché devi volere a tutti i costi fare dell’alta acrobazia senza rete. Le dispense che stai scrivendo non sono un lavagna, e non sono nemmeno una presentazione PowerPoint, ma sono un testo tipocomposto.
Diciamo che quella visualizzazione mi sembra molto chiara. In un testo delle superiori sono giustificabili espedienti grafici che non adotterei mai in una tesi o una dispensa universitaria.
cfiandra” post=99026Dall’altra parte, se utilizzi solo TikZ e vedi il polinomio come matrice dove ogni elemento è una cella ti diventa molto facile disegnare le frecce. Il sistema è estremamente solido perché basta copia-incollare e sostituire i valori del polinomio, ma si perde la spaziatura matematica.
Mi fai vedere come si fa?
Grazie,
L.
-
2 Gennaio 2015 alle 9:21 #96773::
Sposto qui questo dubbio: qualcosa mi dice che c’entra TikZ…Nella formula $A+B+y+z$ vorrei sottolineare in blu le prime due lettere e in rosso le ultime due in blu. Vorrei anche che le rispettive sottolineature apparissero diverse al tratto, per chi stampa in bianco e nero (per esempio, la prima sottolineatura dritta e l’altra ondulata).
Come si fa?
-
2 Gennaio 2015 alle 9:23 #96774::
Ancora Ancora un dubbio (serve la libreria matrix).
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=8mm, text depth=1mm, text centered}]{
& $1$ & $5$ & $-5$ & $5$ & $-6$ \\
$1$ & & $1$ & $6$ & $1$ & $6$ \\
& $1$ & $6$ & $1$ & $6$ & $0$ \\
};
\begin{scope}
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-6.south east);
\draw(a-1-5.north east)–(a-3-5.south east);
\end{scope}
\end{tikzpicture}`
Non mi dispace, ma vorrei che i numeri venissero incolonnati meglio: o centrati o (forse ancora meglio) allineati a destra. Ora i numeri in colonna sono allineati a sinistra, e non mi convince molto…Grazie! 🙂 🙂 🙂
-
2 Gennaio 2015 alle 14:37 #96775::
lorenzo.pantieri” post=99030Ancora Ancora un dubbio (serve la libreria matrix).
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=8mm, text depth=1mm, text centered}]{
& $1$ & $5$ & $-5$ & $5$ & $-6$ \\
$1$ & & $1$ & $6$ & $1$ & $6$ \\
& $1$ & $6$ & $1$ & $6$ & $0$ \\
};
\begin{scope}
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-6.south east);
\draw(a-1-5.north east)–(a-3-5.south east);
\end{scope}
\end{tikzpicture}`
Non mi dispace, ma vorrei che i numeri venissero incolonnati meglio: o centrati o (forse ancora meglio) allineati a destra. Ora i numeri in colonna sono allineati a sinistra, e non mi convince molto…Grazie! 🙂 🙂 🙂
Senza scomodare TiKz, un semplice codice del genere non è sufficiente?
`
\[
\def\arraystretch{1.3}
\begin{array}{c|*{4}{r}|c}
& 1 & 5 & -5 & 5 & -6 \\
1 & & 1 & 6 & 1 & 6 \\
\hline
& 1 & 6 & 1 & 6 & 0
\end{array}
\]
`per quanto riguarda la matrice di cui parla @cfiandra, dovrebbe qualcosa tipo
`
\newcommand\roba[2]{\tikz[baseline=(a-1-1.base)]{\matrix (a)[matrix of math nodes,nodes={inner sep=1pt}]{
#1\\[1em]
#2\\
};
\draw[-stealth](a-1-1)–(a-2-1);}}\[
\roba{a^2}{(a)^2} + 8a + \roba{16}{a^2}
\]
`
Bisogna sistemare le spaziature, ma l’idea è circa questa. Io appoggio comunque @OldClaudio e @cfiandra: scrivere l’equazione nel modo “classico” resta chiaro e comprensibile anche per studenti delle superiori.
-
2 Gennaio 2015 alle 16:00 #96776::
skevin93″ post=99035Senza scomodare TiKz, un semplice codice del genere non è sufficiente?
Sì, è possibile farlo anche senza TikZ, ma poi con TikZ ho la possibilità di aggiungere cose che nell’esempio minimo che ho postato non compaiono. Per esempio con righe tipo:
`\node [above of=a-1-3,above=5mm] (b) {Coefficienti numerici del polinomio $P(x)$ da scomporre};
\node [align=center,left of=a-2-1,left=10mm] (c) {Zero di $P(x)$};
\node [align=center,right of=a-1-5,right=10mm] (d) {Termine noto di $P(x)$};
`
aggiungono scritte in modo elementare.skevin93″ post=99035Io appoggio comunque @OldClaudio e @cfiandra: scrivere l’equazione nel modo “classico” resta chiaro e comprensibile anche per studenti delle superiori.
Mettiamola così: ritengo quelle frecce didatticamente utili. I libri di testo su cui studiano i miei ragazzi ce le hanno. Considerazioni didattiche a parte, sono curioso di vedere come si compone quella scrittura con TikZ: diciamo che mi interessa (anche) il problema TeXnico in sé.
Ah, resta aparto il problema della sottolineatura colorata che mi preme assai… 😉
Grazie 1000!
-
3 Gennaio 2015 alle 9:34 #96777::
Rispondo in un unico intervento ai 3 quesiti.lorenzo.pantieri” post=99030Ancora Ancora un dubbio (serve la libreria matrix).
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=8mm, text depth=1mm, text centered}]{
& $1$ & $5$ & $-5$ & $5$ & $-6$ \\
$1$ & & $1$ & $6$ & $1$ & $6$ \\
& $1$ & $6$ & $1$ & $6$ & $0$ \\
};
\begin{scope}
\draw(a-1-2.north west)–(a-3-1.south east);
\draw(a-2-1.south west)–(a-2-6.south east);
\draw(a-1-5.north east)–(a-3-5.south east);
\end{scope}
\end{tikzpicture}`
Non mi dispace, ma vorrei che i numeri venissero incolonnati meglio: o centrati o (forse ancora meglio) allineati a destra. Ora i numeri in colonna sono allineati a sinistra, e non mi convince molto…Grazie! 🙂 🙂 🙂
In realtà in quel codice c’è [tt]text centered[/tt] quindi i valori sono centrati (fra le altre cose mi sembra che come opzione sia deprecata in favore di [tt]align=center[/tt]). Come dicevo all’inizio di questo filone, puoi fare un semplice debug mettendo [tt]draw[/tt] come opzione e vedrai i bordi di ogni cella. Per averli incolonnati a destra: `
\documentclass[tikz,border=10pt]{standalone}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{calc,matrix}\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={draw,% <= draw è da togliere text width=8mm, text depth=1mm, align=right}]{ & $1$ & $5$ & $-5$ & $5$ & $-6$ \\ $1$ & & $1$ & $6$ & $1$ & $6$ \\ & $1$ & $6$ & $1$ & $6$ & $0$ \\ }; \begin{scope}% non ci sono opzioni comuni ai 3 comandi quindi non è strettamente necessario \draw(a-1-2.north west)--(a-3-1.south east); \draw(a-2-1.south west)--(a-2-6.south east); \draw(a-1-5.north east)--(a-3-5.south east); \end{scope} \end{tikzpicture} ` il cui risultato è: [attachment=1232]pre_2015-01-03.png[/attachment]lorenzo.pantieri” post=99029Sposto qui questo dubbio: qualcosa mi dice che c’entra TikZ…
Nella formula $A+B+y+z$ vorrei sottolineare in blu le prime due lettere e in rosso le ultime due in blu. Vorrei anche che le rispettive sottolineature apparissero diverse al tratto, per chi stampa in bianco e nero (per esempio, la prima sottolineatura dritta e l’altra ondulata).
Come si fa?
Potresti definirti un nuovo comando. Anche qui è un po’ complicato rispettare la spaziatura matematica e la mia soluzione è una buona approssimazione. In alternativa anche in questo caso si potrebbe ricorrere alla famiglia di soluzioni [tt]\tikzmark[/tt]: ti obbliga a compilare due volte e pasticciare un po’ se hai diversi elementi da sottolineare, ma rispetterebbe la spaziatura matematica. Invece, con la seguente soluzione hai un comando semplicissimo da usare: `
\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{calc,matrix}\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=-.5ex]\node[inner sep=0pt,outer sep=-1pt](x){$#2$};
\draw[#1]([yshift=-1.5pt]x.south west)–([yshift=-1.5pt]x.south east);
\end{tikzpicture}%
}\begin{document}
$x-\sottolinea[red!80!black]{A+B}+\sottolinea[blue!60!cyan,dashed]{y+z}+C$$x-A+B+y+z+C$% <= per confronto \end{document} ` Se vuoi una linea ondulata, al posto di dahsed inserisci una decorazione, per esempio snake dovrebbe andare (servono le librerie decorations e decorations.pathmorphing - per la seconda fai un double check).
lorenzo.pantieri” post=99028
Dall’altra parte, se utilizzi solo TikZ e vedi il polinomio come matrice dove ogni elemento è una cella ti diventa molto facile disegnare le frecce. Il sistema è estremamente solido perché basta copia-incollare e sostituire i valori del polinomio, ma si perde la spaziatura matematica.
Mi fai vedere come si fa?
Grazie,
L.Rispetto al parere di OldClaudio e skevin, secondo me questa soluzione è un buon metodo grafico per studenti delle superiori. Anche per questo motivo si può pensare di non essere scrupolosi al 100% con la spaziatura. Come prima, il metodo garantisce solo un’approssimazione della spaziatura matematica: `
\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{calc,matrix}\begin{document}
\hspace*{.355em}$a^2+8a+16$ % <= confronto \begin{tikzpicture}[x=5mm,y=5mm] \matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=1em, text height=2ex,text depth=1pt, align=center, inner sep=0pt}, column sep={.155em},% \, sarebbe .16667em row 3 column 1/.style={execute at begin cell={\hspace*{-.4em}}},% (a)^2 è troppo grande per un box di 1em x 2ex quindi sborda e risulta non centrato; per centrarlo inseriamo uno spazio negativo prima row 3 column 5/.style={execute at begin cell={\hspace*{-.2em}}}, row sep=1ex]{ $a^2$ & $+$ & $8a$ & $+$ & $16$\\ & & & & \\ $(a)^2$ & \hphantom{$+$} & \hphantom{$8a$} & \hphantom{$+$} & $(4)^2$\\ }; \begin{scope}[-stealth, red!80!black,thick,shorten <=2pt,shorten >=1pt]
\draw([xshift=-.25em]a-1-1.south)–([xshift=-.25em]a-3-1.north);
\draw(a-1-5.south)–(a-3-5.north);
\end{scope}
\end{tikzpicture}\end{document}
` Il risultato:[attachment=1233]Schermatadel2015-01-03113453.png[/attachment]
Ciao
Claudio
Attachments:
You must be logged in to view attached files. -
3 Gennaio 2015 alle 14:54 #96778::
cfiandra” post=99040
`\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=-.5ex]\node[inner sep=0pt,outer sep=-1pt](x){$#2$};
\draw[#1]([yshift=-1.5pt]x.south west)–([yshift=-1.5pt]x.south east);
\end{tikzpicture}%
}`A me sembra che vada benone. Perché dici che la spaziatura matematica non è rispettata? E che ne dici di questa minima variante?
`\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=0]
\node [anchor=base, inner xsep=0, inner ysep=1.2bp, outer sep=-0.1em] (x) {$#2$};
\draw[#1] (x.south west) — (x.south east);
\end{tikzpicture}%
}`
-
3 Gennaio 2015 alle 15:45 #96779::
Innanzitutto grazie mille, Claudio e Luigi! 🙂1. Il problema con Ruffini è risolto!
2. Circa la sottolineatura, non riesco a impostare bene “snake”.
`\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{calc,matrix}
\usetikzlibrary{decorations}
\usetikzlibrary{snakes}\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=-.5ex]\node[inner sep=0pt,outer sep=-1pt](x){$#2$};
\draw[#1]([yshift=-1.5pt]x.south west)–([yshift=-1.5pt]x.south east);
\end{tikzpicture}%
}\begin{document}
$x-A+B+y+z+C$% <= per confronto $x-\sottolinea[red!80!black]{A+B}+\sottolinea[blue!60!cyan,dashed]{y+z}+C$ $x-\sottolinea[red!80!black]{A+B}+\sottolinea[blue!60!cyan,snake]{y+z}+C$ $x-\sottolinea[red!80!black]{A+B}+\sottolinea[blue!60!cyan,decoration={snake,amplitude=.4mm}]{y+z}+C$ \end{document} ` Come vedete, se scrivo semplicemente "snake" viene un'ondulazione troppo ambia, ma se provo a impostare "amplitude=.4mm" non funziona. Come faccio? 3. Circa il problema delle frecce su che evidenziano pezzi di formula, devo ancora guardarci!
-
3 Gennaio 2015 alle 15:47 #96780::
lorenzo.pantieri” post=99016Ciao a tutti. Devo realizzare il seguente disegno.

Siccome ho molti disegni di questo tipo nel mio documento, ho bisogno di un metodo “solido”. Ho pensato di definire due nodi (uno per il primo e uno per l’ultimo termine del trinomio e di lavorare con quelli, ma poi sono in difficoltà con la spaziatura orizzontale nella formula (che deve essere quella standard) e con l’allineamento verticale…
Che dite?
Suppongo che il disegno non sia in linea con il resto del testo. Il trucco c’è ma non si vede (= l’esponente fantasma).
`\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{tikzmark}\begin{document}
\begin{tikzpicture} [remember picture]
\node {$\subnode{a}{$a$}^2+8a+\subnode{c}{$16$}$};
\node (a1) [yshift=-6ex] at (a.base) {$\phantom{^2}(a)^2$};
\node (c1) [yshift=-6ex] at (c.base) {$\phantom{^2}(4)^2$};
\draw [->, shorten <=2pt, red] (a.base) -- +(270:4.4ex); \draw [->, shorten <=2pt, red] (c.base) -- +(270:4.4ex); \end{tikzpicture} \end{document}` -
3 Gennaio 2015 alle 16:04 #96781
-
4 Gennaio 2015 alle 7:27 #96782::
Liverpool” post=99045
`\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=-.5ex]\node[inner sep=0pt,outer sep=-1pt](x){$#2$};
\draw[#1]([yshift=-1.5pt]x.south west)–([yshift=-1.5pt]x.south east);
\end{tikzpicture}%
}`A me sembra che vada benone. Perché dici che la spaziatura matematica non è rispettata? E che ne dici di questa minima variante?
`\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=0]
\node [anchor=base, inner xsep=0, inner ysep=1.2bp, outer sep=-0.1em] (x) {$#2$};
\draw[#1] (x.south west) — (x.south east);
\end{tikzpicture}%
}`In effetti pare sia corretto. Con il seguente esempio l’ho verificato tenendo presente come riferimento il segno +: `
\documentclass{article}
\usepackage{amsmath,amssymb,tikz}
\usetikzlibrary{calc,matrix}\newcommand{\tikzmark}[2][]{\tikz[remember picture]\node[#1,coordinate](#2){};}
\newcommand{\sottolinea}[2][]{%
\begin{tikzpicture}[baseline=0]
\node [anchor=base, inner xsep=0, inner ysep=1.2bp, outer sep=-0.1em] (x) {$#2$};
\draw[#1] (x.south west) — (x.south east);
\end{tikzpicture}%
}\newcommand{\oldsottolinea}[2][]{%
\begin{tikzpicture}[baseline=0]
\node [anchor=base, inner xsep=0, inner ysep=1.2bp, outer sep=-0.1em] (x) {$#2$};
\draw[#1] (x.south west) — (x.south east);
\end{tikzpicture}%
}\begin{document}
$\tikzmark{a}x-\sottolinea[red!80!black]{A+B}+\sottolinea[blue!60!cyan,dashed]{y+z}\tikzmark[shift={(5.75pt,0)}]{c}+C$ \qquad $x-A+B+y+z+C\tikzmark{b}$% <= per confronto $x-A+B+y+z\tikzmark[shift={(5.75pt,0)}]{d}+C$% <= per confronto \begin{tikzpicture}[remember picture, overlay] \draw[dotted] (a.south)--(b.south); \draw[green!70!black] ([yshift=3mm]c.north)--([yshift=-1mm]d.center); \end{tikzpicture} $\tikzmark{a1}x-\oldsottolinea[red!80!black]{A+B}+\oldsottolinea[blue!60!cyan,dashed]{y+z}\tikzmark[shift={(5.75pt,0)}]{c1}+C$ \qquad $x-A+B+y+z+C\tikzmark{b1}$% <= per confronto $x-A+B+y+z\tikzmark[shift={(5.75pt,0)}]{d1}+C$% <= per confronto \begin{tikzpicture}[remember picture, overlay] \draw[dotted] (a1.south)--(b1.south); \draw[green!70!black] ([yshift=3mm]c1.north)--([yshift=-1mm]d1.center); \end{tikzpicture} \end{document} ` Il risultato (meglio verificare con la propria macchina e a un buon livello di zoom ;) ) [attachment=1235]Schermatadel2015-01-04091614.png[/attachment] Ciao ClaudioAttachments:
You must be logged in to view attached files. -
5 Gennaio 2015 alle 7:37 #96783::
Anch’io ho notato che il comando \sottolinea non produceva spaziatura soddisfacenti:
`\sottolinea[blue!60!cyan]{bx}+\sottolinea[blue!60!cyan]{xy}-\sottolinea[red!80!black,dashed]{2ay}-\sottolinea[red!80!black,dashed]{2ab}=x(b+y)-2a(y+b)=(b+y)(x-2a)`
Inoltre, anche prescindendo dagli allineamenti, il risultato non era così immediato, così ho ripiegato sugli standard \underbrace e \underline (di quest’ultimo non mi convince molto la spaziatura verticale, la sottolineatura per me è troppo attaccata agli oggetti sottolineati: sapete come aumentarla un po’?).
-
5 Gennaio 2015 alle 7:48 #96784::
Circa le frecce nei prodotti notevoli, il codice di Liverpool mi sballa tutta l’impaginazione. Il codice di Claudio funziona, ma non riesco ad adattarlo agli altri casi, che per fortuna sono “solo” tre:1. $9x^2-12xy+4y^2$
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=1em, text height=2ex,text depth=1pt, align=center, inner sep=0pt},column sep={.155em},% \, sarebbe .16667em
row 3 column 1/.style={execute at begin cell={\hspace*{-.4em}}},% (a)^2 è troppo grande per un box di 1em x 2ex quindi sborda e risulta non centrato; per centrarlo inseriamo uno spazio negativo prima
row 3 column 5/.style={execute at begin cell={\hspace*{-.2em}}},
row sep=1ex]{
$9x^2$ & $-$ & $12xy$ & $+$ & $4y^2$\\
& & & & \\
$(3x)^2$ & \hphantom{$-$} & \hphantom{$12xy$} & \hphantom{$+$} & $(2y)^2$\\
};\begin{scope}[-stealth, blue,thick,shorten <=2pt,shorten >=1pt]
\draw([xshift=-.25em]a-1-1.south)–([xshift=-.25em]a-3-1.north);
\draw(a-1-5.south)–(a-3-5.north);
\end{scope}
\end{tikzpicture}`2. $9x^2-y^2$
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=1em, text height=2ex,text depth=1pt, align=center, inner sep=0pt},column sep={.155em},% \, sarebbe .16667em
row 3 column 1/.style={execute at begin cell={\hspace*{-.4em}}},% (a)^2 è troppo grande per un box di 1em x 2ex quindi sborda e risulta non centrato; per centrarlo inseriamo uno spazio negativo prima
row 3 column 5/.style={execute at begin cell={\hspace*{-.2em}}},
row sep=1ex]{
$9x^2$ & $-$ & $y^2$ \\
& & \\
$(3x)^2$ & \hphantom{$-$} & $(y)^2$\\
};\begin{scope}[-stealth, blue,thick,shorten <=2pt,shorten >=1pt]
\draw([xshift=-.25em]a-1-1.south)–([xshift=-.25em]a-3-1.north);
\draw(a-1-5.south)–(a-3-5.north);
\end{scope}
\end{tikzpicture}`3. $25y^2-1$
Claudio, hai fatto trenta, ti chiedo di fare trentuno: riesci a darmi il codice per gli altri tre disegni?
Grazie! 🙂
-
5 Gennaio 2015 alle 8:03 #96785
-
5 Gennaio 2015 alle 8:29 #96786::
Liverpool” post=99088Ho dimenticato di dirti che bisogna compilare due volte. Questo è il problema?
Sì, ho notato, ma alla seconda combinazione sballa tutto.
Il tuo codice è molto elegante, forse dipende dal fatto che ho una versione vecchia di MacTeX. Ma alla fine, visto che anche quella dispensa è finita, mi sono accorto di aver bisogno essenzialmente di un solo codice. La formula è $9x^2-y^2$, servono due frecce che colleghino i due termini a 3x e y, con un risultato tipografico analogo a questo:
`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=1em, text height=2ex,text depth=1pt, align=center, inner sep=0pt},column sep={.155em},% \, sarebbe .16667em
row 3 column 1/.style={execute at begin cell={\hspace*{-.4em}}},% (a)^2 è troppo grande per un box di 1em x 2ex quindi sborda e risulta non centrato; per centrarlo inseriamo uno spazio negativo prima
row 3 column 5/.style={execute at begin cell={\hspace*{-.2em}}},
row sep=1ex]{
$a^2$ & $+$ & $8a$ & $+$ & $16$\\
& & & & \\
$(a)^2$ & \hphantom{$+$} & \hphantom{$8a$} & \hphantom{$+$} & $(4)^2$\\
};\begin{scope}[-stealth, blue,thick,shorten <=2pt,shorten >=1pt]
\draw([xshift=-.25em]a-1-1.south)–([xshift=-.25em]a-3-1.north);
\draw(a-1-5.south)–(a-3-5.north);
\end{scope}
\end{tikzpicture}`
VA benissimo anche una soluzione “spiccia e sporca”! 🙂
-
5 Gennaio 2015 alle 10:56 #96787::
Eureka!`\begin{tikzpicture}[x=5mm,y=5mm]
\matrix (a)[matrix of nodes, nodes in empty cells,nodes={text width=1em, text height=2ex,text depth=1pt, align=center, inner sep=0pt},column sep={.4em},
row 3 column 1/.style={execute at begin cell={\hspace*{-.4em}}},
row sep=1ex]{
$9x^2$ & $-$ & $y^2$ \\
& & & \\
$(3x)^2$ & & $y^2$\\
};\begin{scope}[-stealth, blue,thick,shorten <=3pt,shorten >=1pt]
\draw([xshift=-.25em]a-1-3.south)–([xshift=-.25em]a-3-3.north);
\draw(a-1-1.south)–(a-3-1.north);
\end{scope}
\end{tikzpicture}`Effettivamete per cose come questa TiKZ non è il massimo della praticità… 😉
-
5 Gennaio 2015 alle 11:00 #96788::
Ok, l’ultimissima domanda.L’obiettivo:

Il mio misero tentativo:
`\begin{tikzpicture}[font=\small]
\draw (0,0) ellipse (3 and 2) node [above left=2.2] {Frazioni algebriche};
\draw (0.5,0) ellipse (2 and 1) node [above left=1.2] {Polinomi};
\draw (0.75,0) ellipse (1 and 0.5) node {Monomi};
\end{tikzpicture}`
Mi suggerite come migliorarlo?Grazie anticipate! 🙂
-
5 Gennaio 2015 alle 20:35 #96789::
lorenzo.pantieri” post=99092Ok, l’ultimissima domanda.
L’obiettivo:

Il mio misero tentativo:
`\begin{tikzpicture}[font=\small]
\draw (0,0) ellipse (3 and 2) node [above left=2.2] {Frazioni algebriche};
\draw (0.5,0) ellipse (2 and 1) node [above left=1.2] {Polinomi};
\draw (0.75,0) ellipse (1 and 0.5) node {Monomi};
\end{tikzpicture}`
Mi suggerite come migliorarlo?Grazie anticipate! 🙂
Così può andare?
`
\begin{tikzpicture}[font=\small]
\draw[blue,fill=blue!20] (0,0) ellipse (3cm and 2.5cm);
\node at (0,1.8cm) {Frazioni algebriche};
\draw[red,fill=red!20] ellipse (2cm and 1.5cm);
\node at (0,1cm){Polinomi};
\node [circle,draw=green,fill=green!20,minimum size=1cm] {Monomi};
\end{tikzpicture}
`
-
6 Gennaio 2015 alle 9:49 #96790::
skevin93″ post=99107
Così può andare?Perfetto, grazie di cuore! 🙂
Un altro dubbio: mi sfugge la differenza tra diagramma a barre e istogramma.
`\begin{center}
\begin{tikzpicture}
\begin{axis}[xbar,xmin=0,xmax=5,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Altezza in cm degli alunni delle classi quinte},
xlabel={Numero di ragazzi},
symbolic y coords={$138$,$140$,$145$,$148$,$149$,$151$,$152$},
ytick=data,nodes near coords,
nodes near coords align={horizontal}]
\addplot [fill=cyan,draw=black] coordinates{
(1,$138$) (3,$140$) (5,$145$) (3,$148$) (4,$149$) (3,$151$) (1,$152$)};
\end{axis}
\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture}
\begin{axis} [ylabel={Numero di ragazzi},x tick label style={rotate=90,anchor=east},
xticklabel interval boundaries,ymajorgrids=true,
symbolic x coords={$138$,$140$,$145$,$148$,$149$,$151$,$152$},
title style={align=center},
title={Altezza in cm degli alunni delle classi quinte}]
\addplot [ybar interval,fill=purple,draw=black] coordinates
{($138$, 1) ($140$, 3)
($145$, 5) ($148$, 3)
($149$, 4) ($151$, 3)
($152$, 1)};
\end{axis}
\end{tikzpicture}
\end{center}
`
Sui libri in mio possesso di solito gli istogrammi sono disegnati come quello di sopra (con le barre staccate), ma sono orientati come quello di sotto (con le barre in verticale).Si può fare con pgfplots? O mi sfugge qualcosa?
-
6 Gennaio 2015 alle 11:09 #96791::
E ancora: vorrei fare un diagramma a torta con i dati rappresentati nel post precedente. Li riporto anche in tabella.
`\begin{tabular}{cc}
\toprule
Altezza & Numero \\
& ragazzi \\
\midrule
$138$ & $1$ \\
$140$ & $3$ \\
$145$ & $5$ \\
$148$ & $3$ \\
$149$ & $4$ \\
$151$ & $3$ \\
$152$ & $1$ \\
\textbf{Totale} & $\boldsymbol{20}$ \\
\bottomrule
\end{tabular}
`
Qual è il modo migliore per farlo?
-
6 Gennaio 2015 alle 14:19 #96792::
lorenzo.pantieri” post=99123E ancora: vorrei fare un diagramma a torta con i dati rappresentati nel post precedente. Li riporto anche in tabella.
`\begin{tabular}{cc}
\toprule
Altezza & Numero \\
& ragazzi \\
\midrule
$138$ & $1$ \\
$140$ & $3$ \\
$145$ & $5$ \\
$148$ & $3$ \\
$149$ & $4$ \\
$151$ & $3$ \\
$152$ & $1$ \\
\textbf{Totale} & $\boldsymbol{20}$ \\
\bottomrule
\end{tabular}
`
Qual è il modo migliore per farlo?Ho provato così.
`\begin{tikzpicture}[x=7mm,y=7mm, x radius=7mm, y radius=7mm]
\draw (0,0) circle (3);
\draw [fill=orange] (0,0) — (0:3) arc (0:18:3);
\draw [fill=brown] (0,0)– (18:3) arc (18:72:3);
\draw [fill=green] (0,0)– (72:3) arc (72:162:3);
\draw [fill=red] (0,0)– (162.6:3) arc (162:216:3);
\draw [fill=blue] (0,0)– (216:3) arc (216:288:3);
\draw [fill=olive] (0,0)– (288:3) arc (288:342:3);
\draw [fill=lightgray] (0,0)– (342:3) arc (342:360:3);\node at (0,4) {Areogramma};
\begin{scope}[xshift=28mm,every node/.style={ anchor=center}]
\matrix[matrix of nodes] at (0,0){
\node[fill=orange]{}; & $1$ \\
\node[fill=brown]{}; & $3$ \\
\node[fill=green]{}; & $5$ \\
\node[fill=red]{}; & $3$ \\
\node[fill=blue]{}; & $4$ \\
\node[fill=olive]{}; & $3$ \\
\node[fill=lightgray]{}; & $1$ \\
};
\end{scope}
\end{tikzpicture}
`
La torta per esserci c’è, ma è un diagramma brutto brutto brutto. Suggerimenti per migliorare il codice?
-
8 Gennaio 2015 alle 12:44 #96793::
Ciao a tutti. Sono alle prese con una misteriosa incompatibilità tra “matrix” e subfig. Il diagramma a torta che produco senza difficoltà con matrix, se mi azzardo a metterlo dentro una subfig, mi dà errore.
`\documentclass[11pt,a4paper,twoside,openright,titlepage,%
headinclude,footinclude,BCOR5mm,%
cleardoublepage=empty,tablecaptionabove,table
]{scrbook}\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[english,italian]{babel}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage[font=small]{quoting}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{braket}
\usepackage{cancel}
\usepackage{empheq}
\usepackage{multicol}
\usepackage[italian]{varioref}
\usepackage{mparhack,fixltx2e,relsize}
\usepackage{tabularx}
\usepackage{array}
\usepackage{subfig}
\usepackage{enumitem}
\usepackage{eurosym}
\usepackage{shapepar}
\usepackage{siunitx}
\usepackage{float}
\usepackage{pifont}
\usepackage{chngpage,calc}
\usepackage[eulerchapternumbers,subfig,beramono,eulermath,pdfspacing,listings]{classicthesis}
\usepackage{arsclassica}
\usepackage{tcolorbox}
\usepackage{bookmark}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{tkz-euclide}
\usepackage{tkz-fct}
\usepackage{dpfloat}
\usepackage{emptypage}\usetikzlibrary{matrix}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[xbar,xmin=0,xmax=6,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Altezza in cm degli alunni delle classi quinte},
xlabel={Numero di alunni},
symbolic y coords={$158$,$160$,$165$,$168$,$174$,$176$,$184$},
ytick=data,nodes near coords,
nodes near coords align={horizontal}]
\addplot [fill=cyan,draw=black] coordinates{
(1,$158$) (2,$160$) (6,$165$) (3,$168$) (4,$174$) (3,$176$) (1,$184$)};
\end{axis}
\end{tikzpicture}
\caption{Istogramma}
\end{figure}\begin{figure}
\centering
\begin{tikzpicture}[x=7mm,y=7mm, x radius=7mm, y radius=7mm]
\draw (0,0) circle (3);
\draw [fill=orange] (0,0) — (0:3) arc (0:18:3);
\draw [fill=brown] (0,0)– (18:3) arc (18:72:3);
\draw [fill=green] (0,0)– (72:3) arc (72:162:3);
\draw [fill=red] (0,0)– (162.6:3) arc (162:216:3);
\draw [fill=blue] (0,0)– (216:3) arc (216:288:3);
\draw [fill=olive] (0,0)– (288:3) arc (288:342:3);
\draw [fill=lightgray] (0,0)– (342:3) arc (342:360:3);\node at (0,4) {Altezza in cm degli alunni delle classi prime};
\begin{scope}[xshift=38mm,every node/.style={ anchor=center}]
\matrix[matrix of nodes] at (0,0){
\node[fill=orange]{}; & $158$ \\
\node[fill=brown]{}; & $160$ \\
\node[fill=green]{}; & $165$ \\
\node[fill=red]{}; & $168$ \\
\node[fill=blue]{}; & $174$ \\
\node[fill=olive]{}; & $176$ \\
\node[fill=lightgray]{}; & $184$ \\
};
\end{scope}
\end{tikzpicture}
\caption{Torta}
\end{figure}\begin{figure}
\caption{Frequenze assolute, relative e percentuali}
\label{tab:relativealtezze}
\centering
\subfloat[][]{
\begin{tikzpicture}
\begin{axis}[xbar,xmin=0,xmax=6,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Altezza in cm degli alunni delle classi quinte},
xlabel={Numero di alunni},
symbolic y coords={$158$,$160$,$165$,$168$,$174$,$176$,$184$},
ytick=data,nodes near coords,
nodes near coords align={horizontal}]
\addplot [fill=cyan,draw=black] coordinates{
(1,$158$) (2,$160$) (6,$165$) (3,$168$) (4,$174$) (3,$176$) (1,$184$)};
\end{axis}
\end{tikzpicture}
}
\quad
\subfloat[][]{
\begin{tikzpicture}[x=7mm,y=7mm, x radius=7mm, y radius=7mm]
\draw (0,0) circle (3);
\draw [fill=orange] (0,0) — (0:3) arc (0:18:3);
\draw [fill=brown] (0,0)– (18:3) arc (18:72:3);
\draw [fill=green] (0,0)– (72:3) arc (72:162:3);
\draw [fill=red] (0,0)– (162.6:3) arc (162:216:3);
\draw [fill=blue] (0,0)– (216:3) arc (216:288:3);
\draw [fill=olive] (0,0)– (288:3) arc (288:342:3);
\draw [fill=lightgray] (0,0)– (342:3) arc (342:360:3);\node at (0,4) {Altezza in cm degli alunni delle classi prime};
%\begin{scope}[xshift=38mm,every node/.style={ anchor=center}]
%\matrix[matrix of nodes] at (0,0){
%\node[fill=orange]{}; & $158$ \\
%\node[fill=brown]{}; & $160$ \\
%\node[fill=green]{}; & $165$ \\
%\node[fill=red]{}; & $168$ \\
%\node[fill=blue]{}; & $174$ \\
%\node[fill=olive]{}; & $176$ \\
%\node[fill=lightgray]{}; & $184$ \\
%};
%\end{scope}
\end{tikzpicture}
}
\end{figure}
\end{document}`
Provate a decommentare le righe nella seconda subfig e incappate l’errore.Come rimediare? Qualcuno mi suggerisce un codice alternativo?
Ovviamente, i vostri eventuali suggerimenti per migliorare il diagramma a torta sono più che benvenuti: il problema principale è che il diagramma è illeggibile se stampato in bianco e nero: ci vorrebbero dei riempimenti leggibili anche per chi non li vede a colori…
Grazie,
L.
-
8 Gennaio 2015 alle 13:32 #96794::
Allora carissimi, grazie a un suggerimento di Tommaso, ho quasi risolto.
`\usepackage{pgf-pie}
\usetikzlibrary{shadows}``\begin{figure}
\caption{Frequenze assolute, relative e percentuali}
\centering
\subfloat[][]{
\begin{tikzpicture}
\begin{axis}[xbar,xmin=0,xmax=6,
height=6.5cm,
xmajorgrids=true,
ytick pos=left,
title={Altezza in cm degli alunni delle classi quinte},
xlabel={Numero di alunni},
symbolic y coords={$158$,$160$,$165$,$168$,$174$,$176$,$184$},
ytick=data,nodes near coords,
nodes near coords align={horizontal}]
\addplot [fill=cyan,draw=black] coordinates{
(1,$158$) (2,$160$) (6,$165$) (3,$168$) (4,$174$) (3,$176$) (1,$184$)};
\end{axis}
\end{tikzpicture}
}
\quad
\subfloat[][]{
\begin{tikzpicture}
\pie[style=drop shadow,radius=2.4,pos={0,3}]{5/$158$, 10/$160$, 30/$165$, 15/$168$, 20/$174$, 15/$176$, 5/$184$}
\end{tikzpicture}
}
\end{figure}`
Primo problema: le etichette delle subfig (“a” e “b”) sono diasllineate verticalmente.Secondo problema: vorrei allineare verticalmente istogramma e grafico a torta (in altre parole, vorrei alzare un po’ il grafico a torta).
Come rimediare?
-
8 Gennaio 2015 alle 13:46 #96795::
lorenzo.pantieri” post=99178
Secondo problema: vorrei allineare verticalmente istogramma e grafico a torta (in altre parole, vorrei alzare un po’ il grafico a torta).Questo problema l’ho risolto in modo “spiccio e sporco” con un
`\node at (0,0) {\phantom{\huge A}};`
nel codice della seconda subfig.Resta da risolvere il problema, più grave, del mancato allineamento verticale delle due sottodidascalie… Non è la prima volta che subfig mi fa questo scherzo, ma la soluzione che ai tempi mi suggerì OldClaudio
`\noalign{\vspace{3.35ex}}`
per regolare una tabella capricciosa qui non posso usarla…
-
8 Gennaio 2015 alle 14:50 #96796::
http://www.lorenzopantieri.net/Matematica_files/Prima.pdfEcco un altro problemino con pgf-pie (che peraltro mi piace moltissimo: sintassi facile e risoltati gradevoli!): i numeri che esprimono le percentuali all’interno delle fette (prodotti in automatico dal programma) non sono in modo matematico: la differenza (pagina 6 e 8) è evidentissima, e sta male. Come rimediare? Basta anche una soluzione sporchissima: ho messo il .sty (non compreso nella mia MacTeX2013) nella cartella di lavoro, per cui potrei anche intervenire su quello…
-
8 Gennaio 2015 alle 17:45 #96797::
lorenzo.pantieri” post=99180http://www.lorenzopantieri.net/Matematica_files/Prima.pdf
Ecco un altro problemino con pgf-pie (che peraltro mi piace moltissimo: sintassi facile e risoltati gradevoli!): i numeri che esprimono le percentuali all’interno delle fette (prodotti in automatico dal programma) non sono in modo matematico: la differenza (pagina 6 e 8) è evidentissima, e sta male. Come rimediare? Basta anche una soluzione sporchissima: ho messo il .sty (non compreso nella mia MacTeX2013) nella cartella di lavoro, per cui potrei anche intervenire su quello…
Aggiungi tra le opzioni
`before number=$, after number=\%$`
-
10 Gennaio 2015 alle 13:43 #96798::
lorenzo.pantieri” post=99123E ancora: vorrei fare un diagramma a torta con i dati rappresentati nel post precedente. […] Qual è il modo migliore per farlo?
Non usare un diagramma a torta direi. Una semplice ricerca su google ti fornirà un sacco di buoni motivi per non farlo. Io sarei un po’ meno drastico, nel senso che se ci sono due, tre spicchi al massimo penso che sia ancora comprensibile.
Potresti considerare anche questa soluzione che è molto elegante e rende il diagramma molto più comprensibile.
Ciao
Claudio
-
10 Gennaio 2015 alle 14:08 #96799::
Liverpool” post=99182
Aggiungi tra le opzioni
`before number=$, after number=\%$`Funziona perfettamente! Grazie mille Luigi!
cfiandra” post=99206Non usare un diagramma a torta direi. Una semplice ricerca su google ti fornirà un sacco di buoni motivi per non farlo. Io sarei un po’ meno drastico, nel senso che se ci sono due, tre spicchi al massimo penso che sia ancora comprensibile.
Mah, io sarei ancora meno drastico: io direi che se ci sono un numero di spicchi non esagerato, i diagrammi a torta possono avere una loro funzione, anche se limitata. Tenete presente che quella con i diagrammi a torta è una dispensa che verrà letta da alunni di una classe di prima superiore… per cui un po’ di colore e di disegno non guasta. Insomma, ciò che in un articolo su una rivista scientifica non ha cittadinanza, in una dispensa per uno studente di prima può averla!
cfiandra” post=99206
Potresti considerare anche questa soluzione che è molto elegante e rende il diagramma molto più comprensibile.Molto bella, in effetti. Forse lascerò il diagramma a torta “per inerzia”, ma l’anello è molto più carino.
-
10 Gennaio 2015 alle 17:40 #96800::
TikZ è stato creato da Till Tantau che ha scritto anche beamer, come sai bene; nella sua documentazione su come comporre le presentazioni, spiega esattamente come sia pestilenziale usare i diagrammi a torta anche nei testi divulgativi e porta un esempio tratto da un noto giornale tedesco; lo trasforma il diagramma a torta in un diagramma ad anello, dandone anche il codice, quindi disegnare anelli non è un problema; basta leggere la documentazione di beamer. Till mi ha permesso di tradurre in italiano le sue raccomandazioni per comporre presentazioni con o senza beamer; trovi la traduzione anche nella Guida Guit. Ma le argomentazioni di Till sono le argomentazioni di una persona precisa come lo sa essere un matematico; gli argomenti che porta sonno assolutamente inconfutabili e quindi valgono anche per dispense destinate agli studenti di prima superiore.
-
11 Gennaio 2015 alle 8:32 #96801::
OldClaudio” post=99212TikZ è stato creato da Till Tantau che ha scritto anche beamer, come sai bene; nella sua documentazione su come comporre le presentazioni, spiega esattamente come sia pestilenziale usare i diagrammi a torta anche nei testi divulgativi e porta un esempio tratto da un noto giornale tedesco; lo trasforma il diagramma a torta in un diagramma ad anello, dandone anche il codice, quindi disegnare anelli non è un problema; basta leggere la documentazione di beamer. Till mi ha permesso di tradurre in italiano le sue raccomandazioni per comporre presentazioni con o senza beamer; trovi la traduzione anche nella Guida Guit. Ma le argomentazioni di Till sono le argomentazioni di una persona precisa come lo sa essere un matematico; gli argomenti che porta sonno assolutamente inconfutabili e quindi valgono anche per dispense destinate agli studenti di prima superiore.
Credo che gli “argomenti”, per definizione, non siano mai “inconfutabili”, ma sempre “opinabili”. Altrimenti non sarebbero “argomenti” ma “dimostrazioni”! Gli argomenti che porta Tantau mi paiono buoni, ma soprattutto lui critica la rappresentazione tridimensionale. Di primo acchito, non vedo differenze sostanziali tra una grafico a torta e uno ad anello. Ma voglio rifletterci meglio e approfondire la cosa.
Intanto, ecco un altro problema. Vorrei realizzare un diagramma come quello in figura.

Pensavo di riadattare questo codice.
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=7,%enlargelimits,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
symbolic x coords={$150$,$160$,$165$,$168$,$174$,$176$,$184$},
xtick=data,nodes near coords,
nodes near coords align={vertical}]
\addplot [fill=cyan,draw=black] coordinates{
($150$,1) ($160$,2) ($165$,6) ($168$,3) ($174$,4) ($176$,3) ($184$,1)};
\end{axis}
\end{tikzpicture} `
Il problema è che non so come scrivere le etichette “150\div154”.Idee?
Grazie, e buona domenica! 🙂
P.S. Fra l’altro dubito che la scrittura “150\div154” vada bene per indicare l’intervallo fra 150 e 154…
-
12 Gennaio 2015 alle 8:18 #96802::
Non c’è sufficiente spazio per inserire quelle etichette in modo non ambiguo in un grafico che occupa metà pagina, perciò ti consiglio di inclinarle:
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=17,%enlargelimits,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
symbolic x coords={
$150\div154$, $155\div159$, $160\div164$, $165\div169$,
$170\div174$, $175\div179$, $180\div184$, $185\div189$},
xtick=data, nodes near coords,
nodes near coords align={vertical},
xticklabel style={rotate=45, anchor=18},
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
($150\div154$,3) ($155\div159$,6) ($160\div164$,9) ($165\div169$,15)
($170\div174$,12) ($175\div179$,6) ($180\div184$,6) ($185\div189$,3)};
\end{axis}
\end{tikzpicture}`[attachment=1241]prova_2015-01-12.png[/attachment]
Per fare quello che vuoi tu basta inserire l’opzione [tt]xticklabel style={text width=1cm}[/tt], ma anche riducendo la dimensione del font, le etichette si confondono con le successive.
Tirata d’orecchi: ti è stato più volte “intimato” di aggiungere nel preambolo `\pgfplotsset{compat=1.11}`
Ora puoi capire la fondatezza di quel consiglio. Prova a compilare il codice che ti ho dato. Vedrai che l’etichetta dell’asse y è inutilmente lontana dal grafico e quella dell’asse x si sovrappone alle etichette delle tacche. Come mai? Perché nella versione 1.3, che è quella usata per default, la gestione delle etichette era sbagliata insieme a cento altre cose.
Ora il consiglio è sempre lo stesso, ma ti invito a ricontrollare tutti i grafici per individuare eventuali comportamenti differenti da quelli che vuoi tu (motivo per il quale sul manuale del pacchetto è sconsigliato di usare il valore [tt]newest[/tt]).Ciao
Attachments:
You must be logged in to view attached files. -
12 Gennaio 2015 alle 8:45 #96803::
Liverpool” post=99235Non c’è sufficiente spazio per inserire quelle etichette in modo non ambiguo in un grafico che occupa metà pagina, perciò ti consiglio di inclinarle:
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=17,%enlargelimits,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
symbolic x coords={
$150\div154$, $155\div159$, $160\div164$, $165\div169$,
$170\div174$, $175\div179$, $180\div184$, $185\div189$},
xtick=data, nodes near coords,
nodes near coords align={vertical},
xticklabel style={rotate=45, anchor=18},
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
($150\div154$,3) ($155\div159$,6) ($160\div164$,9) ($165\div169$,15)
($170\div174$,12) ($175\div179$,6) ($180\div184$,6) ($185\div189$,3)};
\end{axis}
\end{tikzpicture}`[attachment=1241]prova_2015-01-12.png[/attachment]
Per fare quello che vuoi tu basta inserire l’opzione [tt]xticklabel style={text width=1cm}[/tt], ma anche riducendo la dimensione del font, le etichette si confondono con le successive.
Tirata d’orecchi: ti è stato più volte “intimato” di aggiungere nel preambolo `\pgfplotsset{compat=1.11}`
Ora puoi capire la fondatezza di quel consiglio. Prova a compilare il codice che ti ho dato. Vedrai che l’etichetta dell’asse y è inutilmente lontana dal grafico e quella dell’asse x si sovrappone alle etichette delle tacche. Come mai? Perché nella versione 1.3, che è quella usata per default, la gestione delle etichette era sbagliata insieme a cento altre cose.
Ora il consiglio è sempre lo stesso, ma ti invito a ricontrollare tutti i grafici per individuare eventuali comportamenti differenti da quelli che vuoi tu (motivo per il quale sul manuale del pacchetto è sconsigliato di usare il valore [tt]newest[/tt]).Ciao
Grazie per i consigli e il codice, il grafico è splendido!
Mi resta la curiosità (tipografica e non TeXnica) della fondatezza del simbolo \div per indicare l’intervallo. Il nome sembra suggerire una divisione…
Una mia collega mi ha detto che ha visto spesso usare al posto di quel simbolo una specie di “H” molto schiacciata, tipo “|——|”, con le stanghette che indicano che gli estremi sono compresi. Io però quel simbolo non l’ho mai visto. Ah, in alternativa forse si potrebbe pensare a un trattino $160$-$165$, ma forse c’è il rischio che si confonda con un meno…
In ogni caso, in mancanzi di altri input lascio \div, come nel grafico che ha prodotto Liverpool.
Grazie ancora,
Lorenzo
-
12 Gennaio 2015 alle 10:05 #96804::
Non a caso si chiama \div. Gli americano lo usano per la divisione. Le norme ISO indicano quel segno per indicare la divisione.In Italia io ho sempre visto usare per gli intervalli segno svariati che contengono parentesi quadre, tonde e talvolta anche quadre chiuse a sinistra e aperte a destra; di solito ho visto [tt] $[ a \dash b ]$ [/tt] per l’intervallo chiuso da entrambi i lati; mentre per gli intervalli aperti ho visto la fantasia sbizzarrirsi a piacere.
Sembra strano che non ci sia una simbologia standardizzata per l’intervallo. Nella GuidaGuIT e nel fascicoletto saper comunicare ho indicato il segno corrispondente a \div per l’intervallo, perché per un certo periodo di tempo la famosa fantasia (non mia) sembrava essersi focalizzata su quel segno. Ma se qualcuno ha idee migliori e l’indicazione di una simbologia abbastanza consolidata, lo faccia sapere qui sul forum, perché siamo in diversi ad essere interessati a questa cosa. I simboli standardizzati sono fatti per farsi capire, non per sbizzarrire la fantasia.
-
12 Gennaio 2015 alle 10:14 #96805::
lorenzo.pantieri” post=99236In ogni caso, in mancanzi di altri input lascio \div, come nel grafico che ha prodotto Liverpool.
Lascia [tt]\div[/tt] e spiega che con il simbolo [tt]\div[/tt] vuoi indicare tutti i numeri interi compresi tra i due che lo circondano. Hai mai pensato di realizzare una tabella dei simboli all’inizio di ogni dispensa?
@OldClaudio, secondo Wikipedia la notazione più diffusa sarebbe \( [a..b] \), ma francamente mi sembra solo un’opinione personale. Altra notazione, che però ha il difetto di non essere compatta, è \( \{a,…,b\} \).
-
12 Gennaio 2015 alle 10:56 #96806::
Sebbene Wikipedia non sia molto autorevole, nel sito http://it.wikipedia.org/wiki/Intervallo_%28matematica%29 ho notato che viene usata la notazione “parentesi” a, b “parentesi”, vole ciascuna aprentesi può essere quadra o tonda; la quadra è adicente all’estremo che fa parte dell’intervallo; ma se l’estremo non ne fa parte, allora usa la tonda. Quella pagina di Wikipedia indica anche l’uro (che sta scomparendo) delle parentesi quadre rovesciate. La pagina indica anche l’uso italiano dell’obelo (quello sarebbe il nome del segno corrispondente a \div), che indicherebbe l’intervallo chiuso quando entrambi gli estremi sono indicati con numeri.La spiegazione comprende tutti gli usi che avevo elencato nel mio precedente messaggio, con qualche precisazione in più. Resta il fatto che questa varietà di notazioni sottolinea la mancanza di una norma nazionale o internazionale.
Secondo me, l’uso che ne ha fatto Lorenzo, magari merita una spiegazione, come suggerisce @Liverpool, ma è coerente con il fatto che in italiano si usa la virgola non spaziata come separatore decimale, e bisognerebbe usare la virgola spaziata a destra per indicare un elenco di oggetti, quali sono i due estremi. Mentre non c’è nessuna ambiguità se gli estremi sono letterali, dubito che i nostri occhi siano così esercitati da poter distinguere l’intervallo 1,70, 1,74 dalla scrittura 1,70,1,74. (in questo testo si distingue benissimo perché lo spazio a destra della virgola seriale è pari ad uno spazio interparola, ma quando si scrive con LaTeX lo spazio a destra della virgola seriale è uno spazio fino). Perciò l’uso dell’obelo mi sembrerebbe più adatto dell’uso delle parentesi quando gli estremi sono numerici.
Preferirei la presenza di norme unificanti…:wink:
-
12 Gennaio 2015 alle 11:00 #96807::
lorenzo.pantieri” post=99236
Tirata d’orecchi: ti è stato più volte “intimato” di aggiungere nel preambolo `\pgfplotsset{compat=1.11}`
Ora puoi capire la fondatezza di quel consiglio.Sono fritto, mi sa. Se compilo con la Mia MacTeX 2013, ottengo questo messaggio di errore.
`Package pgfkeys Error: Choice '1.11' unknown in key '/pgfplots/
compat/labels'. I am going to ignore this key.See the pgfkeys package documentation for explanation.
Type Hfor immediate help.
…l.59 \pgfplotsset{compat=1.11}
?`
In ogni caso, il tuo codice non viene compilato per niente con la mia MacTeX 2013. Quel \div dentro le etichette non lo digerisce proprio.
`/Capitoli/Statistica.tex:567: Missing \endcsname inserted.
\div
l.567 }?
Process aborted `
Secondo te è possibile rimediare evitando di installare la nuova distribuzione?Qualcosa mi dice che se aggiorno dovrò risolvere un bel po’ di problemi di mancata retro-compatibilità…
-
12 Gennaio 2015 alle 12:04 #96808::
lorenzo.pantieri” post=99243
Tirata d’orecchi: ti è stato più volte “intimato” di aggiungere nel preambolo `\pgfplotsset{compat=1.11}`
Ora puoi capire la fondatezza di quel consiglio.Sono fritto, mi sa. Se compilo con la Mia MacTeX 2013, ottengo questo messaggio di errore.
`Package pgfkeys Error: Choice '1.11' unknown in key '/pgfplots/
compat/labels'. I am going to ignore this key.See the pgfkeys package documentation for explanation.
Type Hfor immediate help.
…l.59 \pgfplotsset{compat=1.11}
?`
In ogni caso, il tuo codice non viene compilato per niente con la mia MacTeX 2013. Quel \div dentro le etichette non lo digerisce proprio.
`/Capitoli/Statistica.tex:567: Missing \endcsname inserted.
\div
l.567 }?
Process aborted `
Secondo te è possibile rimediare evitando di installare la nuova distribuzione?Qualcosa mi dice che se aggiorno dovrò risolvere un bel po’ di problemi di mancata retro-compatibilità…
Ni, nel senso che forse ti sei perso TikZ 3.0.0 nel qual caso c’è qualche problema di compatibilità per pochissime cose (molto specifiche, per cui da utente normale non te ne dovresti accorgere). Certo, non considero tutto l’universo di classi e pacchetti per cui forse ad ora non ti conviene aggiornare.
Quello che puoi fare è provare `\pgfplotsset{compat=1.
}` dove [tt] [/tt] varia da 6 a 9 (mi spiace ma non ricordo esattamente l’ultima versione di pgfplots in TeXlive 2013: oltretutto dipende anche da quando hai aggiornato l’ultima volta). Ciao
Claudio
-
12 Gennaio 2015 alle 12:26 #96809::
cfiandra” post=99245
Ni, nel senso che forse ti sei perso TikZ 3.0.0 nel qual caso c’è qualche problema di compatibilità per pochissime cose (molto specifiche, per cui da utente normale non te ne dovresti accorgere). Certo, non considero tutto l’universo di classi e pacchetti per cui forse ad ora non ti conviene aggiornare.Quello che puoi fare è provare `\pgfplotsset{compat=1.
}` dove [tt] [/tt] varia da 6 a 9 (mi spiace ma non ricordo esattamente l’ultima versione di pgfplots in TeXlive 2013: oltretutto dipende anche da quando hai aggiornato l’ultima volta).
Provato. Accetta senza problemi:
`\pgfplotsset{compat=1.9}`
ma \div ancora non lo digerisce. Accidenti, mi sembra davvero il colmo dover aggiornare una distribuzione perché non inserisce un carattere. 🙁
-
12 Gennaio 2015 alle 14:45 #96810::
Allora gente, il problema è proprio quel \div, accidenti. Se compilo
`\documentclass{standalone}
\usepackage{pgfplots}\begin{document}
\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=17,%enlargelimits,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
symbolic x coords={
$150\div154$, $155\div159$, $160\div164$, $165\div169$,
$170\div174$, $175\div179$, $180\div184$, $185\div189$},
xtick=data, nodes near coords,
nodes near coords align={vertical},
xticklabel style={rotate=45, anchor=18},
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
($150\div154$,3) ($155\div159$,6) ($160\div164$,9) ($165\div169$,15)
($170\div174$,12) ($175\div179$,6) ($180\div184$,6) ($185\div189$,3)};
\end{axis}
\end{tikzpicture}
\end{document}`
ricevo un errore.
`Package pgfplots Warning: running in backwards compatibility mode
(unsuitable t
ick labels; missing features). Consider writing
\pgfplotsset{compat=1.9} into y
our preamble.
on input line 4../pr.tex:17: Missing \endcsname inserted.
\div
l.17 xtick pos=left]?
Process aborted`
Se procedo comunque con la compilazione (devo premere diverse volte Invio, perché a ogni \div la compilazione si ferma), in qualche modo la compilazione va in porto e il grafico viene generato.Potete vederlo a pagina 8 di questo lavoro:
http://www.lorenzopantieri.net/Matematica_files/Prima.pdf
Le etichette oblique sono un po’ pallide, inoltre.
In attesa di aggiornare la mia distribuzione mi posso accontentare. Se avete comunque suggerimenti per metterci una pezza senza aggiornare, sono qui! 🙂
-
12 Gennaio 2015 alle 16:50 #96811::
Ciao a tutti! Liverpool (che non so più come ringraziare) ha fornito la soluzione.
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=17,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
xtick={1,…,8},
xticklabels={%
$150\div154$, $155\div159$, $160\div164$, $165\div169$,
$170\div174$, $175\div179$, $180\div184$, $185\div189$},
xticklabel style={rotate=45, anchor=18},
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
(1,3) (2,6) (3,9) (4,15) (5,12) (6,6) (7,6) (8,3)};
\end{axis}
\end{tikzpicture}`
Il codice non usa le coordinate simboliche, ma produce un risultato perfetto! 🙂
-
12 Gennaio 2015 alle 16:58 #96812
-
13 Gennaio 2015 alle 13:04 #96813::
lorenzo.pantieri” post=99248
Il codice non usa le coordinate simboliche, ma produce un risultato perfetto!Mi correggo. Il risultato non è perfetto.
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=17,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
xtick={1,…,8},
xticklabels={%
$150\div154$, $155\div159$, $160\div164$, $165\div169$,
$170\div174$, $175\div179$, $180\div184$, $185\div189$},
nodes near coords align={vertical}, %questa riga l'ho aggiunta io, non so se ba bene!
xticklabel style={rotate=45, anchor=18},
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
(1,3) (2,6) (3,9) (4,15) (5,12) (6,6) (7,6) (8,3)};
\end{axis}
\end{tikzpicture}`
Mancano le indicazioni (i numeri!) sopra le barre.Come rimediare?
Grazie!
-
13 Gennaio 2015 alle 14:27 #96814
-
13 Gennaio 2015 alle 16:01 #96815::
Liverpool” post=99269
Mancano le indicazioni (i numeri!) sopra le barre.
Aggiungi l’opzione [tt]nodes near coords[/tt].
Ho provato, ma i numeri in cima alle barre non vengono aggiunti. 🙂
`\begin{tikzpicture}[font=\small]
\begin{axis}[ybar,ymin=0,ymax=7,%enlargelimits,
height=6.5cm,
ymajorgrids=true,
xlabel={Altezza in cm},
ylabel={Numero di alunni},
symbolic x coords={$158$,$160$,$165$,$168$,$174$,$176$,$184$},
xtick=data,nodes near coords,
% nodes near coords align={vertical},
nodes near coords,
xtick pos=left]
\addplot [fill=cyan,draw=black] coordinates{
($158$,1) ($160$,2) ($165$,6) ($168$,3) ($174$,4) ($176$,3) ($184$,1)};
\end{axis}
\end{tikzpicture}`
-
14 Gennaio 2015 alle 4:56 #96816
-
25 Gennaio 2015 alle 8:53 #96817::
Buongiorno e buona domenica a tutti.Sono alle prese con l’immagine di una bilancia, e la vorrei migliorare dandole un po’ di tridimensionalità. Provo a spiegarmi con un codice compilabile.
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,subfig}
\usetikzlibrary{shapes,shapes.geometric}\begin{document}
\newcommand{\base}{%
\filldraw[fill=black!90, draw=gray!80,rounded corners,shading=radial, inner color=white, outer color=gray!90]%
(-2.4cm, -0.2cm) rectangle (2.4cm,0.4cm);
}\newcommand{\aste}{%
\fill[fill=black!90,rounded corners,shading=radial, inner color=white, outer color=gray!90]%
(-1.25mm,3mm) rectangle (1.25mm,4.3cm);
}\newcommand{\disco}{%
\filldraw[fill=gray!20,draw=gray, rounded corners, shade,shading=radial, inner color=white, outer color=blue!50]%
(-.6cm, .4cm) rectangle (.6cm,0.8cm);
}
\begin{tikzpicture}[scale=.7,font=\small]
\foreach \n/\a in {-15.25mm,0,15.25mm}{
\begin{scope}[xshift=\a]
\aste
\end{scope}
}\foreach \n/\x in {1/0cm}{%
\begin{scope}[xshift=\x]
\base
\end{scope}
}\foreach \n/\y in {0,.4cm,…,3.2cm}{%
\begin{scope}[xshift=15.75mm,yshift=\y]
\disco
\end{scope}
}
\end{tikzpicture}\begin{figure}
\centering
\subfloat[][\label{fig:mattone1}]{
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[fill=lightgray, draw=darkgray]
\filldraw (0,0) rectangle (4,1);
\filldraw[rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw (1.8,1.7) rectangle (2.3,8);
\filldraw[rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\filldraw[fill=BrickRed, draw=BrickRed](-5,4) rectangle (-3,5);
\filldraw[fill=BrickRed, draw=BrickRed](7,4) rectangle (8,5);
\filldraw[fill=white] (8.3,4) rectangle (9.7,5.1);
\filldraw[fill=white] (8.6,5.1) rectangle (9.4,5.4);
\node () at (9,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
}
\qquad
\subfloat[][\label{fig:mattone2}]{
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[fill=lightgray, draw=darkgray] %, xshift=10cm]
\filldraw (0,0) rectangle (4,1);
\filldraw[rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw (1.8,1.7) rectangle (2.3,8);
\filldraw[rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\filldraw[fill=BrickRed, draw=BrickRed](-4.5,4) rectangle (-3.5,5);
\filldraw[fill=white] (7.3,4) rectangle (8.7,5.1);
\filldraw[fill=white] (7.6,5.1) rectangle (8.4,5.4);
\node () at (8,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
}
\caption{Un mattone pesa un chilo più mezzo mattone. Quanto pesa un mattone?}
\label{fig:mattone}
\end{figure}
\end{document}`
La prima immagine riproduce un pallottoliere: come vedete le sfumature le danno una bella tridimensionalità.Invece la secondo immagine, che ritrae una bilancia, è molto piatta. Mi suggerite come modificare il codice della bilancia per avere un effetto di sfumatura analogo a quello del pallottoliere?
Grazie anticipate!
L.P.S. Tutti i suggerimenti per migliorare il codice sono più che benvenuti… 😉
-
25 Gennaio 2015 alle 9:15 #96818::
Ecco altro pane per voi guru di TikZ! Il seguente codice compilabile riproduce il monte Everest e la fossa delle Marianne, stilizzati. Vorrei migliorare il disegno, rendendo più evidente che si tratta di un monte e di una fossa sotto il livello del mare. In particolare vorrei:
1. colorare di bianco/azzurrino la cima dell’Everest, cercando di dare l’idea di una cima innevata;
2. usare una sfumatura dal blu al blu scurissimo per la fossa man mano che si scende, per dare l’idea di un mare sempre più profondo.
`\documentclass{article}
\usepackage{tikz}\begin{document}
\begin{tikzpicture}[scale=.9]
% Disegna Everest
\filldraw [fill=cyan, draw=black] (0,0)– (4mm,7mm)– (10mm,14mm)–(13mm,16mm)– (15mm,19mm)–(17mm,17mm)–%
(19mm,16.5mm)–(24mm,0);
% Disegna Fossa delle Marianne
\filldraw [fill=purple, draw=black](28mm,0)–(31mm,-6mm)–(35mm,-8mm)–(37mm,-15mm)–(42mm,-20mm)– (49mm,-21mm)–%
(51mm, -17mm)–(52mm, -5mm)–(55mm,0);
% Disegna il livello del mare
\draw [thick] (-5mm,0) — (60mm,0);\begin{scope}[font=\small]
% Posiziona altezze
\node(0)at (-5mm,0) {$0$~m};
\node [above](everest) at (14mm,21mm) {$+8855$~m};
\node [below](marianne) at (49mm,-21mm) {$-10\,916$~m};
% Posiziona etichette
\node (testo1) at (35mm,16mm) {Monte Everest};
\node (testo2) at (12mm,-5mm) {Livello del mare};
\node (testo3) at (18mm,-17mm) {Fossa delle Marianne};
\end{scope}
% Disegna frecce
\draw [<-,purple] (everest) .. controls +(right:10mm) and +(up:10mm) .. node[]{} (testo1); \draw [<-](0)..controls +(down:5mm) and +(left:19mm)..node[]{} (testo2); \draw [<-, cyan](marianne)..controls +(left:10mm) and +(down:10mm)..node[]{} (testo3); \end{tikzpicture} \end{document}` Al solito, tutti i vostri suggerimenti per migliorare il codice sono più che benvenuti! L. -
26 Gennaio 2015 alle 6:33 #96819::
lorenzo.pantieri” post=99529Buongiorno e buona domenica a tutti.
Sono alle prese con l’immagine di una bilancia, e la vorrei migliorare dandole un po’ di tridimensionalità. Provo a spiegarmi con un codice compilabile.
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,subfig}
\usetikzlibrary{shapes,shapes.geometric}\begin{document}
\newcommand{\base}{%
\filldraw[fill=black!90, draw=gray!80,rounded corners,shading=radial, inner color=white, outer color=gray!90]%
(-2.4cm, -0.2cm) rectangle (2.4cm,0.4cm);
}\newcommand{\aste}{%
\fill[fill=black!90,rounded corners,shading=radial, inner color=white, outer color=gray!90]%
(-1.25mm,3mm) rectangle (1.25mm,4.3cm);
}\newcommand{\disco}{%
\filldraw[fill=gray!20,draw=gray, rounded corners, shade,shading=radial, inner color=white, outer color=blue!50]%
(-.6cm, .4cm) rectangle (.6cm,0.8cm);
}
\begin{tikzpicture}[scale=.7,font=\small]
\foreach \n/\a in {-15.25mm,0,15.25mm}{
\begin{scope}[xshift=\a]
\aste
\end{scope}
}\foreach \n/\x in {1/0cm}{%
\begin{scope}[xshift=\x]
\base
\end{scope}
}\foreach \n/\y in {0,.4cm,…,3.2cm}{%
\begin{scope}[xshift=15.75mm,yshift=\y]
\disco
\end{scope}
}
\end{tikzpicture}\begin{figure}
\centering
\subfloat[][\label{fig:mattone1}]{
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[fill=lightgray, draw=darkgray]
\filldraw (0,0) rectangle (4,1);
\filldraw[rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw (1.8,1.7) rectangle (2.3,8);
\filldraw[rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\filldraw[fill=BrickRed, draw=BrickRed](-5,4) rectangle (-3,5);
\filldraw[fill=BrickRed, draw=BrickRed](7,4) rectangle (8,5);
\filldraw[fill=white] (8.3,4) rectangle (9.7,5.1);
\filldraw[fill=white] (8.6,5.1) rectangle (9.4,5.4);
\node () at (9,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
}
\qquad
\subfloat[][\label{fig:mattone2}]{
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[fill=lightgray, draw=darkgray] %, xshift=10cm]
\filldraw (0,0) rectangle (4,1);
\filldraw[rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw (1.8,1.7) rectangle (2.3,8);
\filldraw[rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, fill=lightgray] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\filldraw[fill=BrickRed, draw=BrickRed](-4.5,4) rectangle (-3.5,5);
\filldraw[fill=white] (7.3,4) rectangle (8.7,5.1);
\filldraw[fill=white] (7.6,5.1) rectangle (8.4,5.4);
\node () at (8,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
}
\caption{Un mattone pesa un chilo più mezzo mattone. Quanto pesa un mattone?}
\label{fig:mattone}
\end{figure}
\end{document}`
La prima immagine riproduce un pallottoliere: come vedete le sfumature le danno una bella tridimensionalità.Invece la secondo immagine, che ritrae una bilancia, è molto piatta. Mi suggerite come modificare il codice della bilancia per avere un effetto di sfumatura analogo a quello del pallottoliere?
Grazie anticipate!
L.P.S. Tutti i suggerimenti per migliorare il codice sono più che benvenuti… 😉
Potresti provare con una sfumatura: `
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[draw=darkgray]
\filldraw[top color=lightgray!40,bottom color=lightgray, shading angle=30] (0,0) rectangle (4,1);
\filldraw[top color=lightgray!40,bottom color=lightgray, shading angle=45,rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw[top color=lightgray!40,bottom color=lightgray, shading angle=45,] (1.8,1.7) rectangle (2.3,8);
\filldraw[top color=lightgray!40,bottom color=lightgray, shading angle=45,rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw[top color=lightgray!40,bottom color=lightgray, shading angle=45,] (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2,top color=lightgray!40,bottom color=lightgray, shading angle=45,] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, top color=lightgray!30,bottom color=lightgray, shading angle=45,] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray, top color=lightgray!50,bottom color=lightgray, shading angle=45,] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\filldraw[fill=BrickRed, draw=BrickRed](-5,4) rectangle (-3,5);
\filldraw[fill=BrickRed, draw=BrickRed](7,4) rectangle (8,5);
\filldraw[fill=white] (8.3,4) rectangle (9.7,5.1);
\filldraw[fill=white] (8.6,5.1) rectangle (9.4,5.4);
\node () at (9,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
` Attenzione: in questo caso inserire le varie opzioni direttamente in scope produrrebbe un risultato sgradito, un riempimento nero. Però, puoi definire uno stile per [tt]top color=lightgray!40,bottom color=lightgray, shading angle=45[/tt] e utilizzarlo di conseguenza (a me è tornato più comodo fare copia e incolla, ma appesantisce parecchio il codice).Ciao
Claudio
-
26 Gennaio 2015 alle 12:59 #96820::
Fossa delle Marianne e Monte Everest.
`
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadings}
\begin{document}\begin{tikzpicture}[scale=.9]
% Disegna Everest
\filldraw [fill=cyan] (0,0)– (4mm,7mm)– (10mm,14mm)–(13mm,16mm)– (15mm,19mm)–(17mm,17mm)–%
(19mm,16.5mm)–(24mm,0);
% Vetta innevata
\filldraw[fill=white] (10mm,14mm)–(13mm,16mm)– (15mm,19mm)–(17mm,17mm)–%
(19mm,16.5mm);
% Disegna Fossa delle Marianne!
\filldraw [top color=blue, bottom color=teal, draw=black](28mm,0)–(31mm,-6mm)–(35mm,-8mm)–(37mm,-15mm)–(42mm,-20mm)– (49mm,-21mm)–%
(51mm, -17mm)–(52mm, -5mm)–(55mm,0);
% Disegna il livello del mare
\draw [thick] (-5mm,0) — (60mm,0);\begin{scope}[font=\small]
% Posiziona altezze
\node(0)at (-5mm,0) {$0$~m};
\node [above](everest) at (14mm,21mm) {$+8855$~m};
\node [below](marianne) at (49mm,-21mm) {$-10\,916$~m};
% Posiziona etichette
\node (testo1) at (35mm,16mm) {Monte Everest};
\node (testo2) at (12mm,-5mm) {Livello del mare};
\node (testo3) at (18mm,-17mm) {Fossa delle Marianne};
\end{scope}
% Disegna frecce
\draw [<-,purple] (everest) .. controls +(right:10mm) and +(up:10mm) .. node[]{} (testo1); \draw [<-](0)..controls +(down:5mm) and +(left:19mm)..node[]{} (testo2); \draw [<-, cyan](marianne)..controls +(left:10mm) and +(down:10mm)..node[]{} (testo3); \end{tikzpicture} \end{document} ` -
26 Gennaio 2015 alle 13:25 #96821::
Per la bilancia ti propongo questa versione.
`
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,subfig}
\usetikzlibrary{shapes,shapes.geometric,shadings}\tikzset{riempi v/.style={left color=gray,right color=gray, middle color=lightgray}, % elementi verticali
riempi h/.style={top color=gray,bottom color=gray, middle color=lightgray} % elementi orizzontali
}
\begin{document}
\begin{tikzpicture}[font=\small,x=5mm, y=5mm, scale=.75]
\begin{scope}[draw=darkgray]
\filldraw[riempi h] (0,0) rectangle (4,1);
\filldraw[riempi h,rounded corners=2] (1,1.1)rectangle (3,1.6);
\filldraw[riempi v] (1.8,1.7) rectangle (2.3,8);
\filldraw[riempi h,rounded corners=2] (1.5,8.1)rectangle (2.6,8.6);
\filldraw[riempi h] (-4,8.7) rectangle (8,9.1);
\filldraw[rounded corners=2,riempi v] (1.8,8.8)rectangle (2.3,9.8);\node[name=c1,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray,ball color=lightgray,shading angle=120] at (-4,3)
{};
\node (a) at (-4,8.7) {};
\draw (a.center)–(c1.arc start);
\draw (a.center)–(c1.arc end);\node[name=c2,shape=semicircle,shape border rotate=180, inner sep=3.75mm,draw=darkgray,ball color=lightgray,shading angle=120] at (8,3)
{};
\node (b) at (8,8.7) {};
\draw (b.center)–(c2.arc start);
\draw (b.center)–(c2.arc end);\fill[fill=BrickRed](-5,4) rectangle (-3,5);
\fill[fill=BrickRed](7,4) rectangle (8,5);
\filldraw[fill=white] (8.1,4) rectangle (9.5,5.1);
\filldraw[fill=white] (8.4,5.1) rectangle (9.2,5.4);
\node () at (8.8,4.5) {$1$kg};
\end{scope}
\end{tikzpicture}
\end{document}
`
-
29 Gennaio 2015 alle 13:31 #96822::
Mi scuso innanzitutto per il ritardo con ringrazio OldClaudio e skevin93 per avermi risposto. Ho usato le soluzioni proposte da skevin9, con una l’unica modifica dei colori nella figura Everest/Fossa delle Marianne.
`\begin{tikzpicture}[scale=.9]
% Disegna Everest
\filldraw [fill=Mahogany!80!black] (0,0)– (4mm,7mm)– (10mm,14mm)–(13mm,16mm)– (15mm,19mm)–(17mm,17mm)–%
(19mm,16.5mm)–(24mm,0);
% Vetta innevata
\filldraw[fill=white] (10mm,14mm)–(13mm,16mm)– (15mm,19mm)–(17mm,17mm)–%
(19mm,16.5mm);
% Disegna Fossa delle Marianne!
\filldraw [top color=blue, bottom color=blue!45!black, draw=black](28mm,0)–(31mm,-6mm)–(35mm,-8mm)–(37mm,-15mm)–(42mm,-20mm)– (49mm,-21mm)–%
(51mm, -17mm)–(52mm, -5mm)–(55mm,0);
% Disegna il livello del mare
\draw [thick] (-5mm,0) — (60mm,0);\begin{scope}[font=\small]
% Posiziona altezze
\node(0)at (-5mm,0) {$0$~m};
\node [above](everest) at (14mm,21mm) {$+8855$~m};
\node [below](marianne) at (49mm,-21mm) {$-10\,916$~m};
% Posiziona etichette
\node (testo1) at (35mm,16mm) {Monte Everest};
\node (testo2) at (12mm,-5mm) {Livello del mare};
\node (testo3) at (18mm,-17mm) {Fossa delle Marianne};
\end{scope}
% Disegna frecce
\draw [<-,purple] (everest) .. controls +(right:10mm) and +(up:10mm) .. node[]{} (testo1); \draw [<-](0)..controls +(down:5mm) and +(left:19mm)..node[]{} (testo2); \draw [<-, cyan](marianne)..controls +(left:10mm) and +(down:10mm)..node[]{} (testo3); \end{tikzpicture}` Come vedete, la Fossa è blu in prossimità del livello del mare, e degrada in un nero/blu scurissimo via via che aumenta la profondità. Questo per dare l'idea, appunto della profondità dell'oceano, dove è buio da un certo punto in poi. Circa l'Everest, l'ho colorato di marrone (a eccezione naturalmente della cima innevata), colore che mi sembra più adatto dell'azzurro. Grazie ancora! :-) -
30 Dicembre 2015 alle 6:18 #96823::
Buongiorno a tutti.
`\begin{tikzpicture}[font=\small]
\draw [help lines] (0,0) grid (4,4);%\draw [cyan!50,fill=cyan!50] (1,1) rectangle (3,3);
\draw [thick] (1,1) circle (1);
\draw [thick] (3,1) circle (1);
\draw [thick] (1,3) circle (1);
\draw [thick] (3,3) circle (1);\end{tikzpicture}`
Abbiate pietà: qual è il modo migliore di colorare la zona del disegno in mezzo (quella compresa tra i quattro archi di circonferenza)?Grazie anticipate,
Lorenzo
-
30 Dicembre 2015 alle 6:49 #96824::
Ciao.
Io farei così molto semplicemente:
`\documentclass[tikz]{standalone}\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (4,4);\fill[cyan!50] (2,1)
arc (180:90:1)
arc (270:180:1)
arc (0:-90:1)
arc (90:0:1);\draw [thick] (1,1) circle (1);
\draw [thick] (3,1) circle (1);
\draw [thick] (1,3) circle (1);
\draw [thick] (3,3) circle (1);
\end{tikzpicture}
\end{document}`Saluti.
R.
-
30 Dicembre 2015 alle 8:45 #96825
-
4 Agosto 2016 alle 14:52 #96826::
Ciao a tutti. Vorrei adagiare un blocchetto di legno su un piano inclinato. Non capisco perché la mia soluzione non funziona.
`\documentclass{article}\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture} [font=\small]
\draw [thick] (0,0) — (4.5,0) — (0,2.59808) — cycle;
\draw [thick] (4.5,0) ++(150:5mm) arc (150:180:5mm);
\node [above] at (3.5,0) {$30°$};
\draw [thick,rounded corners,shift={(2.25+0.25,1.29904+0.25)},rotate =-30] (-0.5,-0.25) rectangle (0.5,0.25);
\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture} [font=\small]
\draw [thick] (0,0) — (3,0) — (0,3) — cycle;
\draw [thick] (3,0) ++(135:5mm) arc (135:180:5mm);
\node [above] at (2.25,0) {$45°$};
\draw [thick,rounded corners,shift={(1.5+0.25,1.5+0.25)},rotate =-45] (-0.5,-0.25) rectangle (0.5,0.25);
\draw [<->,dashed] (-0.25,-0) — (-0.25,3);
\nodeat (-0.25,1.5) {$h$};
\end{tikzpicture}
\end{center}\end{document}`
Come valore di shift metto la metà delle dimensioni del piano + la metà dello spessore del blocchetto. Perché non funziona? Come correggere?Ah, se volessi adagiare il blocchetto non a metà del piano, ma un po’ più su?
Grazie anticipate,
Lorenzo
-
4 Agosto 2016 alle 19:08 #96827::
Il problema era di tipo “trigonometrico” nel caso di piano inclinato a 45 gradi la soluzione è
`\draw [thick,rounded corners,shift={(1.5+0.1767,1.5+0.1767)},rotate =-45] (-0.5,-0.25) rectangle (0.5,0.25);`0.1767 altri non è che il valore 0.25 diviso per la radice quadrata di 2, credo fosse sfuggito questo dettaglio. Per dirla in modo più consono, la semi altezza del rettangolo deve essere proiettata sui due assi cartesiani.
Per la seconda domanda, basta inserire le coordinate sullo shift del punto desiderato, 0.1767 è un invariante, cambia solo se cambia l’angolo.Mi permetto invece di fare notare che
`\node [above] at (3.5,0) {$30°$};`
almeno nel esempio minimo compilabile, non produce il simbolo di grado, non so se poi con altri pacchetti il problema venga risolto in automatico o se fosse stato scritto solo per rendere più chiaro che cos’è quel valore.
-
5 Agosto 2016 alle 3:23 #96828::
schwarz89it” post=107240Per dirla in modo più consono, la semi altezza del rettangolo deve essere proiettata sui due assi cartesiani.
Perfetto!
`\documentclass{article}
\usepackage{tikz}
\usepackage[applemac]{inputenc}\begin{document}
\begin{center}
\begin{tikzpicture} [font=\small]
\draw [thick] (0,0) — (4.5,0) — (0,2.59808) — cycle;
\draw [thick] (4.5,0) ++(150:5mm) arc (150:180:5mm);
\node [above] at (3.5,0) {$30°$};
\draw [thick,,rounded corners,shift={(2.25+0.125,1.29904+0.216506)},rotate =-30] (-0.5,-0.25) rectangle (0.5,0.25);\end{tikzpicture}
\end{center}\begin{center}
\begin{tikzpicture} [font=\small]
\draw [thick] (0,0) — (3,0) — (0,3) — cycle;
\draw [thick] (3,0) ++(135:5mm) arc (135:180:5mm);
\node [above] at (2.25,0) {$45°$};
\draw [thick,rounded corners,shift={(1.5+0.176777,1.5+0.176777)},rotate =-45] (-0.5,-0.25) rectangle (0.5,0.25);
\draw [<->,dashed] (-0.25,-0) — (-0.25,3);
\nodeat (-0.25,1.5) {$h$};
\end{tikzpicture}
\end{center}\end{document}`
Il pacchetto inputenc permette di inserireil simbolo di grado.
Grazie mille!
-
12 Agosto 2016 alle 12:00 #96829::
Rieccomi. Ho bisogno di disegnare un libro su cui è applicata una coppia di forze. Ci sono riuscito con questa soluzione “spiccia e sporca”.
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}\begin{document}
\begin{tikzpicture}[scale=0.8, font=\small]
\draw [very thick,fill=Yellow!50!white] (2,0) — (4.5,1) — (2.5,2) — (0,1) — cycle;\draw [very thick] (4.5,0.85) ++(-90:1.5mm) arc (-90:90:1.5mm);
\draw [very thick] (2,-0.15) ++(-90:1.5mm) arc (-90:90:1.5mm);
\draw [very thick] (0,0.85) ++(-90:1.5mm) arc (-90:90:1.5mm);
\draw [very thick] (2,-0.3) — (4.5,0.7);
\draw [very thick] (0,0.7) — (2,-0.3);\draw [very thick,->] (2.5,2) — (4.5,2.75);
\draw [very thick,->] (2.15,-0.15) — (0.15,-1.0);\draw [very thin] (0,0.8) — (2,-0.2);
\draw [very thin] (0,0.9) — (2,-0.1);\node at (4,2.25) {$-\vec{F}$};
\node at (1.25,-0.8) {$\vec{F}$};\draw (0,0.85) [white,fill=white] circle (1.5mm);
\draw [very thick] (0,0.85) ++(-90:1.5mm) arc (-90:90:1.5mm);\end{tikzpicture}
\end{document} `
Ora però vorrei migliorare il risultato. In particolare, vorrei colorare di nero la costina del libro e migliorare gli archi: ora sono troppo accentuati. Ancora, vorrei le righine delle pagine più corte e irregolari (non tutte lunghe uguali). Mi aiutate?Grazie anticipate,
Lorenzo
-
12 Agosto 2016 alle 14:41 #96830::
La mia proposta è questa`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary[calc,intersections,through,backgrounds]
\begin{document}\begin{tikzpicture}[scale=0.8, font=\small]
%\draw[help lines,step=0.5] (0,-1) grid (5,3);
\fill[yellow!50!white] (2,0) — (4.5,1) — (2.5,2) — (0,1) — cycle;\draw[very thick,fill=black] (2,-0.3)arc(-45:45:0.2121)–(4.5,1)arc(45:-45:0.2121)–(2,-0.3);
\draw[very thick] (0,1)–(2,0)arc(45:-45:0.2121)–(0,0.7)arc(-45:45:0.2121)–(2.5,2)–(4.5,1);%\path [name path=B–F];
%\draw[name path=arco] (0,0.7)arc(-45:45:0.2121);
\path [name path=arco] (0,0.7)arc(-45:45:0.2121);
\foreach\y in{-0.2,-0.1}{
\path[name path=pagina](2,\y)–(0,\y+1);
\path[name intersections={of=arco and pagina,by={B}}];
\draw[very thin](2,\y)–(B);
};\draw [very thick,->] (2.5,2) — (4.5,2.75);
\draw [very thick,->] (2.15,-0.15) — (0.15,-1.0);\node at (4,2.25) {$-\vec{F}$};
\node at (1.25,-0.8) {$\vec{F}$};\end{tikzpicture}
\end{document}`
Due osservazioni:
1) Come ho trovato angoli e lunghezze dei bordi arrotondati del libro? Non avendo voglia di fare conti ho fatto con autocad (45° spesso e volentieri secondo me risolve i problemi) esteticamente mi sembra carino, ma eventualmente si può trovare anche un altro angolo di attacco.
2) Le pagine sono ancora due, ma ora si possono aumentare molto facilmente basta cambiare
`
\foreach\y in{-0.2,-0.1}`
con
`\foreach\y in {-0.3,-0.25,…,0}`
è un bel risparmio di lavoro secondo me.
Con il metodo implementato dentro il foreach si può trovare anche il vero punto di attacco del vettore F, ora mascherata dal nero.
Non so se questo fosse il risultato voluto, resto a disposizione.
-
12 Agosto 2016 alle 16:37 #96831
-
12 Agosto 2016 alle 18:15 #96832::
lorenzo.pantieri” post=107363
Non so se questo fosse il risultato voluto, resto a disposizione.
Molto bello. Vorrei solo le righine delle pagine più corte, di pochi mm, non per tutta la larghezza del libro. Riesci?
Avendo riletto anche il tuo precedente intervento, chiedevi che le paginette non fossero attaccate al bordo e non tutte uguali, qui ti presento la mia nuova proposta
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary[calc,intersections,through,backgrounds]
\begin{document}\begin{tikzpicture}[scale=0.8, font=\small]
%\draw[help lines,step=0.5] (0,-1) grid (5,3);
\fill[yellow!50!white] (2,0) — (4.5,1) — (2.5,2) — (0,1) — cycle;\draw[very thick,fill=black] (2,-0.3)arc(-45:45:0.2121)–(4.5,1)arc(45:-45:0.2121)–(2,-0.3);
\draw[very thick] (0,1)–(2,0)arc(45:-45:0.2121)–(0,0.7)arc(-45:45:0.2121)–(2.5,2)–(4.5,1);\coordinate (A) at (0,0.7);
\coordinate (D) at (2,0);
\coordinate (C) at ($(A)!0.05! (D)$);
\path[name path=arco] (C)arc(-45:45:0.2121);\foreach\y in{-0.25,-0.20,…,0}{
\path[name path=pagina](2,\y)–(0,\y+1);
\path[name intersections={of=arco and pagina,by={B}}];
\coordinate (E) at ($(2,\y)!0.99+0.02*rand!(B)$);
\draw[very thin](2,\y)–(E);
};\draw [very thick,->] (2.5,2) — (4.5,2.75);
\draw [very thick,->] (2.15,-0.15) — (0.15,-1.0);\node at (4,2.25) {$-\vec{F}$};
\node at (1.25,-0.8) {$\vec{F}$};\end{tikzpicture}
\end{document}`
Adesso le pagine puoi governarle come meglio credi modificando il fattore che io ho impostato a 0.05 per quanto riguarda il limite nuovo teorico
`\coordinate (C) at ($(A)!0.05! (D)$);
`per il grado di aleatorietà della pagina il controllo è questo
`\coordinate (E) at ($(2,\y)!0.99+0.02*rand!(B)$);
`
Ho impostato 0.99 perché il random ha un intervallo [-1;1] mentre 0.02 serve a scalare proprio il random. Quindi al momento il listato prende il 99% della lunghezza della pagina e ci somma un fattore aleatorio che ha intervallo [-0.02;0.02].
Lascio a te decidere poi i valori che meglio rispondono alle tue esigenze. Spero questa volta di aver colto a pieno la tua richiesta altrimenti non esitare a scrivermi.
-
13 Agosto 2016 alle 4:34 #96833::
schwarz89it” post=107364Spero questa volta di aver colto a pieno la tua richiesta altrimenti non esitare a scrivermi.
L’effetto che sto cercando per rendere le pagine del libro è diverso dalla tua ultima proposta.Vorrei 4 righine in tuttio: quella più in alto lunga 5 mm, la seconda lunga 7 mm, le due più in basso lunghe 5 mm. Le righine devono partire dal margine esterno del libro (non dalla costina). La direzione delle righe dei tuoi ultimi esempi è corretta: le vorrei più corte, e dall’altra parte.
Grazie mille!
-
13 Agosto 2016 alle 7:53 #96834::
Ecco altre due immagini che ho realizzato alla buona. Se avete suggerimenti su come migliorarne il (pessimo) codice, sono qui. Ah, per tutta una serie di ragioni (molte delle quali certamente infondate) sono fermo alla MacTeX 2013, quindi vi chiedo di evitare librerie troppo moderne.`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,pgfplots,amsmath}\begin{document}
\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.4\textwidth,
axis lines=middle,
xmin=0,xmax=4,ymin=0,ymax=20,
enlargelimits,
grid,
xtick={1,2,3,4,5,6},
ytick={5,10,15,20},
xlabel=$x$,
ylabel=$y$]\addplot [domain=0:10, samples=100,smooth,blue,very thick] {5/x};
\end{axis}
\end{tikzpicture}\begin{tikzpicture} [decoration={coil,aspect=0.3,segment length=1mm,amplitude=1mm},font=\small,scale=1.15]
\draw [thick] (0,0) — (4.5,0) — (0,2.59808) — cycle;
\draw [thick,fill=BrickRed!50!white,rounded corners,shift={(2.10192,1.84641)},rotate =-30] (-0.9,-0.4) rectangle (0.9,0.4);
% asse x
\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
\node [shift={(2.10192,1.84641)},rotate =-30,below=5pt] at (1.75,0) {$x$};% asse y
\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.75);
\node [shift={(2.10192,1.84641)},rotate =-30,right=20pt] at (0,2) {$y$};\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
% P
\draw [blue,very thick,->] (2.10192,1.84641) — (2.10192,0.34641);
\nodeat (2.10192,0.34641) {$\vec{P}$};
% P perpendicolare
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,-1.29904);
\node [below] at (1.3,0.9) {$\vec{P}_{\bot}$};% P parallelo
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0.75,0);
\node [below] at (2.7,2.1) {$\vec{P}_{\parallel}$};% reazione vincolare
\draw [blue,very thick,red,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.29904);
\nodeat (2.7,2.6) {$\vec{F}_{\text{v}}$};
% forza elastica
\draw [blue,very thick,green,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (-0.75,0);
\node [below] at (1.7,2.7) {$\vec{F}_\text{e}$};\draw [<->,dashed] (-0.25,-0) — (-0.25,2.59808);
\nodeat (-0.25,1.29904) {$h$};
\draw [<->,dashed] (0,-0.25) — (4.5,-0.25);
\node [below] at (2.25,-0.25) {$d$};\draw
(-2.75,-0.1) rectangle (-2,0.1);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0,-1.3) — (0.75,-1.3);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0.75,-1.25) — (0.75,0);
\draw [decorate,shift={(2.10192,1.84641)},rotate =-30] (-2.0,0.0) — (-0.9,0.0);
\end{tikzpicture}
\end{document}`
-
13 Agosto 2016 alle 10:50 #96835::
lorenzo.pantieri” post=107370Ecco altre due immagini che ho realizzato alla buona. Se avete suggerimenti su come migliorarne il (pessimo) codice, sono qui. Ah, per tutta una serie di ragioni (molte delle quali certamente infondate) sono fermo alla MacTeX 2013, quindi vi chiedo di evitare librerie troppo moderne.
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,pgfplots,amsmath}\begin{document}
\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.4\textwidth,
axis lines=middle,
xmin=0,xmax=4,ymin=0,ymax=20,
enlargelimits,
grid,
xtick={1,2,3,4,5,6},
ytick={5,10,15,20},
xlabel=$x$,
ylabel=$y$]\addplot [domain=0:10, samples=100,smooth,blue,very thick] {5/x};
\end{axis}
\end{tikzpicture}\begin{tikzpicture} [decoration={coil,aspect=0.3,segment length=1mm,amplitude=1mm},font=\small,scale=1.15]
\draw [thick] (0,0) — (4.5,0) — (0,2.59808) — cycle;
\draw [thick,fill=BrickRed!50!white,rounded corners,shift={(2.10192,1.84641)},rotate =-30] (-0.9,-0.4) rectangle (0.9,0.4);
% asse x
\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
\node [shift={(2.10192,1.84641)},rotate =-30,below=5pt] at (1.75,0) {$x$};% asse y
\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.75);
\node [shift={(2.10192,1.84641)},rotate =-30,right=20pt] at (0,2) {$y$};\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
% P
\draw [blue,very thick,->] (2.10192,1.84641) — (2.10192,0.34641);
\nodeat (2.10192,0.34641) {$\vec{P}$};
% P perpendicolare
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,-1.29904);
\node [below] at (1.3,0.9) {$\vec{P}_{\bot}$};% P parallelo
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0.75,0);
\node [below] at (2.7,2.1) {$\vec{P}_{\parallel}$};% reazione vincolare
\draw [blue,very thick,red,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.29904);
\nodeat (2.7,2.6) {$\vec{F}_{\text{v}}$};
% forza elastica
\draw [blue,very thick,green,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (-0.75,0);
\node [below] at (1.7,2.7) {$\vec{F}_\text{e}$};\draw [<->,dashed] (-0.25,-0) — (-0.25,2.59808);
\nodeat (-0.25,1.29904) {$h$};
\draw [<->,dashed] (0,-0.25) — (4.5,-0.25);
\node [below] at (2.25,-0.25) {$d$};\draw
(-2.75,-0.1) rectangle (-2,0.1);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0,-1.3) — (0.75,-1.3);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0.75,-1.25) — (0.75,0);
\draw [decorate,shift={(2.10192,1.84641)},rotate =-30] (-2.0,0.0) — (-0.9,0.0);
\end{tikzpicture}
\end{document}`
Prova così: `\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,pgfplots,amsmath}\pgfplotsset{compat=1.3} % versione super vecchia di pgfplots 😉
\begin{document}
\begin{tikzpicture}[font=\small]
\begin{axis} [width=0.4\textwidth,
axis lines=middle,
xmin=0,xmax=4,ymin=0,ymax=20,
enlargelimits,
grid,
xtick={1,2,3,4,5,6},
ytick={5,10,15,20},
xlabel=$x$,
ylabel=$y$,
% vedi: http://tex.stackexchange.com/q/122747/13304
every axis x label/.style={
at={(ticklabel* cs:1.05)},
anchor=west,
},
every axis y label/.style={
at={(ticklabel* cs:1.05)},
anchor=south,
},
]\addplot [domain=0:10, samples=100,smooth,blue,very thick] {5/x};
\end{axis}
\end{tikzpicture}\vspace*{1cm}
\begin{tikzpicture} [decoration={coil,aspect=0.3,segment length=1mm,amplitude=1mm},font=\small,scale=1.15]
\draw [thick] (0,0) — (4.5,0) — (0,2.59808) — cycle;
\draw [thick,fill=BrickRed!20,rounded corners,shift={(2.10192,1.84641)},rotate =-30] (-0.9,-0.4) rectangle (0.9,0.6);% <= ho alzato il vertice alto a destra e sfumato leggermente di più il riempimento % asse x \draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
\node [shift={(2.10192,1.84641)},rotate =-30,below=5pt] at (1.75,0) {$x$};% asse y
\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.75);
\node [shift={(2.10192,1.84641)},rotate =-30,right=20pt] at (0,2) {$y$};\draw [->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (1.5,0);
% P
\draw [blue,very thick,->] (2.10192,1.84641) — (2.10192,0.34641);
\nodeat (2.10192,0.34641) {$\vec{P}$};
% P perpendicolare
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,-1.29904);
\node [below] at (1.3,0.9) {$\vec{P}_{\bot}$};% P parallelo
\draw [blue,very thick,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0.75,0);
\node [below] at (2.7,2.1) {$\vec{P}_{\parallel}$};% reazione vincolare
\draw [blue,very thick,red,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (0,1.29904);
\nodeat (2.7,2.6) {$\vec{F}_{\text{v}}$};
% forza elastica
\draw [blue,very thick,green,->,shift={(2.10192,1.84641)},rotate =-30] (0,0) — (-0.75,0);
\node [below] at (1.7,2.7) {$\vec{F}_\text{e}$};\draw [<->,dashed] (-0.25,-0) — (-0.25,2.59808);
\nodeat (-0.25,1.29904) {$h$};
\draw [<->,dashed] (0,-0.25) — (4.5,-0.25);
\node [below] at (2.25,-0.25) {$d$};\draw
(-2.75,-0.1) rectangle (-2,0.1);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0,-1.3) — (0.75,-1.3);
\draw [dashed,shift={(2.10192,1.84641)},rotate =-30] (0.75,-1.25) — (0.75,0);
\draw [decorate,shift={(2.10192,1.84641)},rotate =-30] (-2.0,0.0) — (-0.9,0.0);
\end{tikzpicture}
\end{document}` Il codice è commentato e le modifiche sono veramente minime 😉
Ciao
Claudio
-
13 Agosto 2016 alle 11:57 #96836::
Forse ci siamo
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary[calc,intersections,through,backgrounds]
\begin{document}\begin{tikzpicture}[scale=0.8, font=\small]
%\draw[help lines,step=0.5] (0,-1) grid (5,3);
\fill[yellow!50!white] (2,0) — (4.5,1) — (2.5,2) — (0,1) — cycle;\draw[very thick,fill=black] (2,-0.3)arc(-45:45:0.2121)–(4.5,1)arc(45:-45:0.2121)–(2,-0.3);
\draw[very thick] (0,1)–(2,0)arc(45:-45:0.2121)–(0,0.7)arc(-45:45:0.2121)–(2.5,2)–(4.5,1);\coordinate (A) at (0,0.7);
\coordinate (D) at (2,0);
\coordinate (C) at ($(A)!0! (D)$);
\path[name path=arco] (C)arc(-45:45:0.2121);\foreach\y in{-0.24,-0.18,-0.12,-0.06}{
\path[name path=pagina](2,\y)–(0,\y+1);
\path[name intersections={of=arco and pagina,by={B}}];
\pgfmathequal{\y}{-0.12}
\ifnum\pgfmathresult=1
\draw[very thin] (B)–+(-26.565:7mm);
\else
\draw[very thin] (B)–+(-26.565:5mm);
\fi
};\draw [very thick,->] (2.5,2) — (4.5,2.75);
\draw [very thick,->] (2.15,-0.15) — (0.15,-1.0);\node at (4,2.25) {$-\vec{F}$};
\node at (1.25,-0.8) {$\vec{F}$};\end{tikzpicture}
\end{document}`
Adesso le 4 linee partono dalla parte oposta e si estendono per 5mm la I, III e IV e per 7mm la II il punto C resta definito come prima quindi puoi ancora muoverle su e giù nel libro, e se vuoi cambiare la pagina che ha 7mm basta solo che modifichi il valore del comando`\pgfmathequal{\y}{-0.12}
`con quale dei 4 valori vuoi, anche se ragionevolmente al più potrebbe essere -0.18, dubito che tu voglia mettere la prima o l’ultima diversa.
-
13 Agosto 2016 alle 12:14 #96837::
cfiandra” post=107375Il codice è commentato e le modifiche sono veramente minime 😉
http://www.lorenzopantieri.net/Matematica_e_Fisica_files/Fisica.pdf
Splendido. Ho appena aggiornato il documento sulla base delle tue indicazioni. Grazie 1000! 🙂
-
13 Agosto 2016 alle 12:23 #96838::
schwarz89it” post=107378Forse ci siamo […].
Eccome se ci siamo!!!
http://www.lorenzopantieri.net/Matematica_e_Fisica_files/Fisica.pdf
Grazie mille! 🙂
-
13 Agosto 2016 alle 12:26 #96839
-
22 Agosto 2016 alle 9:13 #96840::
Ciao a tutti. Mi aiutate a migliorare questa figura?
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}\begin{document}
\begin{tikzpicture}[scale=0.9,font=\small]
\draw
(-0.8,-4.4) — (0.8,-4.4) — (0.6,-3.6) — (-0.6,-3.6) — cycle;
\draw(-0.8,-4.6) rectangle (0.8,-4.4);
\draw [thick, right color=BrickRed, left color=white] (-0.1,0.5) rectangle (0.1,-4);
\draw [thick, top color=lightgray, bottom color=white] (-2.75,-0.15) rectangle (2.75,0.15);\draw (-2.5,0) [fill=white] circle (2pt);
\draw (-2,0) [fill=white] circle (2pt);
\draw (-1.5,0) [fill=white] circle (2pt);
\draw (-1,0) [fill=white] circle (2pt);
\draw (-0.5,0) [fill=white] circle (2pt);
\draw (0,0) [fill=white] circle (2pt);
\draw (0.5,0) [fill=white] circle (2pt);
\draw (1,0) [fill=white] circle (2pt);
\draw (1.5,0) [fill=white] circle (2pt);
\draw (2,0) [fill=white] circle (2pt);
\draw (2.5,0) [fill=white] circle (2pt);\draw (0,0.5) [fill=BrickRed] ellipse (0.1 and 0.05);
\draw (0,-4)ellipse (0.1 and 0.05); % non ci siamo!!!
\draw (0,0) — (0.5,-0.5) node [below right=-4pt] {fulcro};
\draw (2.25,0) — (2.75,-0.5) node [below right=-4pt] {asta};
\draw (0,-2.5) — (0.5,-3) node [below right=-4pt] {supporto};\end{tikzpicture}
\end{document}`
Quello che non va è la base del supporto. Ci vorrebbe solo l’arco in basso dell’ellisse, e non quello in alto. In altre parole, ci vorrebbe una semiellisse.Grazie anticipate!
-
22 Agosto 2016 alle 9:35 #96841::
lorenzo.pantieri” post=107595Ciao a tutti. Mi aiutate a migliorare questa figura?
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}\begin{document}
\begin{tikzpicture}[scale=0.9,font=\small]
\draw
(-0.8,-4.4) — (0.8,-4.4) — (0.6,-3.6) — (-0.6,-3.6) — cycle;
\draw(-0.8,-4.6) rectangle (0.8,-4.4);
\draw [thick, right color=BrickRed, left color=white] (-0.1,0.5) rectangle (0.1,-4);
\draw [thick, top color=lightgray, bottom color=white] (-2.75,-0.15) rectangle (2.75,0.15);\draw (-2.5,0) [fill=white] circle (2pt);
\draw (-2,0) [fill=white] circle (2pt);
\draw (-1.5,0) [fill=white] circle (2pt);
\draw (-1,0) [fill=white] circle (2pt);
\draw (-0.5,0) [fill=white] circle (2pt);
\draw (0,0) [fill=white] circle (2pt);
\draw (0.5,0) [fill=white] circle (2pt);
\draw (1,0) [fill=white] circle (2pt);
\draw (1.5,0) [fill=white] circle (2pt);
\draw (2,0) [fill=white] circle (2pt);
\draw (2.5,0) [fill=white] circle (2pt);\draw (0,0.5) [fill=BrickRed] ellipse (0.1 and 0.05);
\draw (0,-4)ellipse (0.1 and 0.05); % non ci siamo!!!
\draw (0,0) — (0.5,-0.5) node [below right=-4pt] {fulcro};
\draw (2.25,0) — (2.75,-0.5) node [below right=-4pt] {asta};
\draw (0,-2.5) — (0.5,-3) node [below right=-4pt] {supporto};\end{tikzpicture}
\end{document}`
Quello che non va è la base del supporto. Ci vorrebbe solo l’arco in basso dell’ellisse, e non quello in alto. In altre parole, ci vorrebbe una semiellisse.Grazie anticipate!
`\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}\begin{document}
\begin{tikzpicture}[scale=0.9,font=\small]
\draw
(-0.8,-4.4) — (0.8,-4.4) — (0.6,-3.6) — (-0.6,-3.6) — cycle;
\draw(-0.8,-4.6) rectangle (0.8,-4.4);
%\draw [thick, right color=BrickRed, left color=white] (-0.1,0.5) rectangle (0.1,-4);
\draw [thick, right color=BrickRed, left color=white] (-0.1,0.5)–(0.1,0.5)–(0.1,-4) arc[start angle=360, end angle=180,x radius=0.1, y radius=0.05]–cycle;
\draw [thick, top color=lightgray, bottom color=white] (-2.75,-0.15) rectangle (2.75,0.15);\draw (-2.5,0) [fill=white] circle (2pt);
\draw (-2,0) [fill=white] circle (2pt);
\draw (-1.5,0) [fill=white] circle (2pt);
\draw (-1,0) [fill=white] circle (2pt);
\draw (-0.5,0) [fill=white] circle (2pt);
\draw (0,0) [fill=white] circle (2pt);
\draw (0.5,0) [fill=white] circle (2pt);
\draw (1,0) [fill=white] circle (2pt);
\draw (1.5,0) [fill=white] circle (2pt);
\draw (2,0) [fill=white] circle (2pt);
\draw (2.5,0) [fill=white] circle (2pt);\draw (0,0.5) [fill=BrickRed,semithick] ellipse (0.1 and 0.05);%ho aggiunto il semithick per uniformare lo spessore dell'ellisse, thick mi sembrava troppo
\draw (0,0) — (0.5,-0.5) node [below right=-4pt] {fulcro};
\draw (2.25,0) — (2.75,-0.5) node [below right=-4pt] {asta};
\draw (0,-2.5) — (0.5,-3) node [below right=-4pt] {supporto};\end{tikzpicture}
\end{document}`
Le modifiche sono minime, ho rimosso il rettangolo e creato una polilinea
-
22 Agosto 2016 alle 10:49 #96842::
schwarz89it” post=107596Le modifiche sono minime, ho rimosso il rettangolo e creato una polilinea
Spettacolo!!!
http://www.lorenzopantieri.net/Matematica_e_Fisica_files/Fisica.pdf
Figure 46-49.
Grazie mille, risolutivo come sempre! 🙂
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.