Re: Grafici con XY-picture

#78118
Up
0
Down
::

Ga” post=77227Grazie mille Marco per il benvenuto e per i consigli, leggerò la guida. Utilizzo la compilazione con LaTex perchè mi hanno abituata ad usare quella fin dall’inizio ma comunque cercherò di seguire il tuo consiglio.
Per quanto riguarda il mio problema invece, grazie Claudio per il codice che mi hai postato, avevo già provato ad utilizzare quello del commento precedente e anche in questo caso non trova il pacchetto ‘xparse’ perchè non è presente nella lista; ho cercato di scaricarlo e installarlo (seguendo lo schema proposto nel sito

http://www.guit.sssup.it/installazione/pacchetti.php

e utilizzando il seguente link per scaricare il file.sty di xparse

http://ctan.org/tex-archive/macros/latex/contrib/l3packages)
ma non ci sono riuscita per cui volevo chiederti se potresti mandarmi il link da cui scaricare il pacchetto.
Grazie mille comunque per la spiegazione dei comandi, ne farò buon uso!
Gaia

Ah, probabilmente hai una distribuzione dei pacchetti non aggiornata oppure incompleta. Hai installato MikTeX o TeXLive?

In alternativa posso rendere la soluzione indipendente da xparse 😉

Codice xparse-free:

`
\documentclass[svgnames]{article}

\usepackage{tikz}
\usetikzlibrary{calc,backgrounds,positioning}
% Declarations
\pgfmathtruncatemacro\scale{1}
\pgfmathtruncatemacro\minycoord{-5}
\pgfmathtruncatemacro\step{1}
\pgfmathtruncatemacro\maxycoord{5}
\pgfmathtruncatemacro\minxcoord{-5}
\pgfmathtruncatemacro\maxxcoord{5}

% Settings
\newcommand{\setscale}[1]{\pgfmathtruncatemacro\scale{#1}}
\newcommand{\setminycoord}[1]{\pgfmathtruncatemacro\minycoord{#1/\scale}}
\newcommand{\setmaxycoord}[1]{\pgfmathtruncatemacro\maxycoord{#1/\scale}}
\newcommand{\setmaxxcoord}[1]{\pgfmathtruncatemacro\maxxcoord{#1/\scale}}
\newcommand{\setminxcoord}[1]{\pgfmathtruncatemacro\minxcoord{#1/\scale}}

\newcommand{\drawaxes}{
\ifnum\minycoord=0
\draw[-stealth,very thick,shorten >=-1cm](0,\minycoord)–(0,\maxycoord);
\else
\draw[stealth-stealth,very thick,shorten <=-1cm,shorten >=-1cm](0,\minycoord)–(0,\maxycoord);
\fi
\ifnum\minycoord=0
\draw[-stealth,very thick,shorten >=-1cm](\minxcoord,0)–(\maxxcoord,0);
\else
\draw[stealth-stealth,very thick,shorten <=-1cm,shorten >=-1cm](\minxcoord,0)–(\maxxcoord,0);
\fi
}

\newcommand{\setlabelaxes}[1][0.1]{
% Y-axis
\pgfmathtruncatemacro\startingy\minycoord
\pgfmathparse{add(\startingy,\step)}\pgfmathresult
\pgfmathtruncatemacro\secondy\pgfmathresult
\pgfmathtruncatemacro\lasty\maxycoord
\foreach \y [evaluate=\y as \scaledy using \y*\scale] in {\startingy,\secondy,…,\lasty}{
\pgfmathtruncatemacro\labely\scaledy
\pgfmathparse{notequal(\labely,0)}\pgfmathresult
\ifnum\pgfmathresult=1
\draw[very thick] (#1,\y)–(-#1,\y) node

{\labely};
\fi
}
% X-axis
\pgfmathtruncatemacro\startingx\minxcoord
\pgfmathparse{add(\startingx,\step)}\pgfmathresult
\pgfmathtruncatemacro\secondx\pgfmathresult
\pgfmathtruncatemacro\lastx\maxxcoord
\foreach \x [evaluate=\x as \scaledx using \x*\scale] in {\startingx,\secondx,…,\lastx}{
\pgfmathtruncatemacro\labelx\scaledx
\pgfmathparse{notequal(\labelx,0)}\pgfmathresult
\ifnum\pgfmathresult=1
\draw[very thick] (\x,#1)–(\x,-#1) node[below] {\labelx};
\fi
}
}

\newcommand{\settickaxes}[1][0.1]{
% Y-axis
\pgfmathtruncatemacro\startingy\minycoord
\pgfmathparse{add(\startingy,\step)}\pgfmathresult
\pgfmathtruncatemacro\secondy\pgfmathresult
\pgfmathtruncatemacro\lasty\maxycoord
\foreach \y[evaluate=\y as \scaledy using \y*\scale] in {\startingy,\secondy,…,\lasty}{
\pgfmathtruncatemacro\labely\scaledy
\pgfmathparse{notequal(\labely,0)}\pgfmathresult
\ifnum\pgfmathresult=1
\draw[very thick] (#1,\y)–(-#1,\y);
\fi
}
% X-axis
\pgfmathtruncatemacro\startingx\minxcoord
\pgfmathparse{add(\startingx,\step)}\pgfmathresult
\pgfmathtruncatemacro\secondx\pgfmathresult
\pgfmathtruncatemacro\lastx\maxxcoord
\foreach \x [evaluate=\x as \scaledx using \x*\scale] in {\startingx,\secondx,…,\lastx}{
\pgfmathtruncatemacro\labelx\scaledx
\pgfmathparse{notequal(\labelx,0)}\pgfmathresult
\ifnum\pgfmathresult=1
\draw[very thick] (\x,#1)–(\x,-#1);
\fi
}
}

\newcommand{\drawpoints}[2][0.1]{
\foreach \place/\name/\color in {#2}
\draw[draw=none,fill= \color] \place circle[radius=#1] node(\name) {};
}

\newcommand{\drawpins}[2][cyan]{
\foreach \place/\name/\position in {#2}
\draw[draw=#1, shorten <=0.45cm] \place -- (\name.\position); } \begin{document} \begin{tikzpicture} \setscale{1} \setminycoord{0} \setmaxycoord{4} \setminxcoord{0} \setmaxxcoord{4} % Axes \drawaxes \settickaxes[0.075] \drawpoints[0.15]{{(2,1)/a/red},{(3,1)/b/blue},{(4,1)/c/blue},{(1,2)/d/magenta},{(2,2)/e/orange}} \drawpins[cyan]{{(2,1)/a/north},{(3,1)/b/east},{(4,1)/c/east}} \end{tikzpicture} \vspace{2cm} \begin{tikzpicture} \setscale{1} \setminycoord{0} \setmaxycoord{4} \setminxcoord{0} \setmaxxcoord{4} % Axes \drawaxes \setlabelaxes[0.075] \drawpoints[0.15]{{(2,1)/a/red},{(3,1)/b/blue},{(4,1)/c/blue},{(1,2)/d/magenta},{(2,2)/e/orange}} \drawpins[red]{{(2,1)/a/north},{(3,1)/b/east},{(4,1)/c/east}} \end{tikzpicture} \end{document} ` Ciao Claudio

Go to top