Liverpool” post=72092Lo sforamento della memoria. […] Mi sembra strano che il problema sia dato dal numero di grafici nel documento (una ventina, come dici tu). Potrebbe essere che tra di essi ce ne sia almeno uno che da solo sfora la memoria. Potresti mandarmi il sorgente per email?
Su questo punto ti rispondo subito (sugli altri voglio documentarmi prima). Metto il sorgente qui sul forum (chiedo scusa se non è minimale, ma in questo caso non può esserlo!). Il documento viene compilato perfettamente, ma se sostituisco nella prima figura (riga 12) “samples=30” con “samples=100”, ecco che ho l’errore fatale di sforamento della memoria.
`\documentclass{article}
\usepackage{etex}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3 [
surf,
samples=30,
domain=-2*pi:2*pi,
colormap/cool
]
{sin(deg(sqrt(x^2+y^2)))/%
sqrt(x^2+y^2)};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot [
no marks,
style=thick,
color=blue,
samples=40
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot [
domain=0:2*pi,
thick,
color=blue,
samples=40
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[axis lines=middle]
\addplot [
domain=0:2*pi,
thick,
color=blue,
samples=40
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
axis y line=left
]
\addplot [
domain=0:2*pi,
style=thick,
color=blue,
samples=40
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xtick={3.14, 6.28},
xticklabels={$\pi$,$2\pi$},
ytick={0.5, 1},
yticklabels={$1/2$, $1$}
]
\addplot [
domain=0:2*pi,
samples=40,
color=blue,
style=thick
]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{semilogyaxis}
\addplot [
style=thick,
color=blue
]
{exp(x)};
\end{semilogyaxis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
xlabel=$x$,
ylabel={$f(x)=x^2-x+4$}
]
\addplot {x^2-x+4};
\legend{$d=2$}
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot {x^2};
\addplot {-x^2};
\legend{$x^2$, $-x^2$}
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
width=6cm,
height=6cm
]
\addplot [
color=blue,
style=thick,
samples=40,
smooth,
domain=0:2*pi,
variable=\t
]
({cos(deg(t))},{sin(deg(t))});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot [
color=blue,
style=thick,
samples=50,
domain=0:6*pi,
smooth,
variable=\t
]
({t*cos(deg(t))},
{t*sin(deg(t))});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot [
color=blue,
style=thick,
samples=50,
smooth,
domain=0:360,
variable=\t
]
({sin(3*t)}, {sin(2*t)});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot [
color=blue,
style=thick,
samples=50,
domain=0:360,
smooth,
variable=\t
]
({sin(7*t)}, {sin(2*t)});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
view={60}{20},
xlabel=$x$,
ylabel=$y$,
zlabel=$z$,
variable=\t
]
\addplot3 [
color=blue,
style=thick,
domain=0:5.5*pi,
samples=40,
smooth,
samples y=0,
no marks
]
({sin(deg(t))}, {cos(deg(t))},
{2*t/(5*pi)});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot3 [surf] {x^2-y^2};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot3 [surf, colormap/cool]
{x^2-y^2};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot3 [
mesh,
draw=red,
samples=10
]
{x^2-y^2};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot3 [
mesh,
scatter,
samples=10
]
{x^2-y^2};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
view={-45}{45},
xlabel=$x$,
ylabel=$y$,
zlabel=$z$
]
\addplot3 [surf] {x};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[view={60}{30}]
\addplot3 [
surf,
z buffer=sort,
samples=30,
variable=\u,
variable y=\v,
domain=-1:0,
y domain=0:2*pi
]
({sqrt(1-u^2)*cos(deg(v))},
{sqrt(1-u^2)*sin(deg(v))},
u);
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[view={60}{30}]
\addplot3 [
surf,
z buffer=sort,
samples=30,
domain=0:360,
y domain=0:360,
variable=\u,
variable y=\v
]
({(3+cos(u))*cos(v)},
{(3+cos(u))*sin(v)},
{sin(u)});
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {
(10, 100)
(20, 150)
(40, 225)
(80, 340)
(160, 510)
(320, 765)
(640, 1150)
};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot
coordinates {
(2, -2.855)
(3, -3.530)
(4, -4.305)
(5, -5.141)
(6, -6.032)
(7, -6.967)
(8, -7.937)
};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
xmajorgrids=true]
\addplot [
xbar,
fill=red,
draw=black
]
coordinates {
(4, 0)
(1, 1)
(2, 2)
(5, 3)
(6, 4)
(1, 5)
};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
xtick={1,2,…,12},
ytick={20,30,…,60},
ymajorgrids=true,
ymin=10,
ymax=60
]
\addplot [
ybar,
bar width=8pt,
fill=blue,
draw=black
]
coordinates {
(1, 22)
(2, 25)
(3, 35)
(4, 42)
(5, 52)
(6, 59)
(7, 44)
(8, 38)
(9, 28)
};
\end{axis}
\end{tikzpicture}
\end{document}`
Non dipende dalle potenzialità di calcolo di TeX, ma dalla mole di dati che è necessario memorizzare temporaneamente per tracciare il grafico, quindi il problema non si risolve ricorrendo alla funzione di importazione.
Questa cosa che dici mi sembra strana: se uso Mathematica per fare tutti i conti e uso pgfplots solo per fare i grafici, mi pare ovvio che alleggerirò LaTeX di una bella mole di lavoro (una bella fetta del lavoro l’ha fatta Mathematica); quindi mi aspetto maggiore velocità e minori problemi di sforamento della memoria: pgfplots dovrà “solo” congiungere tutti i punti presenti nel file dati.tex con dei segmentini. Mi sbaglio?
Grazie mille!