von Mac-Cherony » Mi 17. Aug 2011, 20:06
Soooo, mittlerweile habe ich ein bisschen weiter "rumprobiert" und mein Code sieht mittlerweile so aus:
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[colormap/greenyellow,colorbar, view={0}{90}]
\addplot3[raw gnuplot] gnuplot[surf,mesh/check=false,samples=100]{
c=1e-5;
a=100e-6;
b=20e-6;
p=-100000;
K=((16*a**2)/(c*pi**3))*(-p);
Sum(i,x,y)=K*(((-1)**(0.5*((2*i-1)-1)))*(1-((cosh(((2*i-1)*pi*y)/(2*a)))/(cosh(((2*i-1)*pi*b)/(2*a)))))*((cos(((2*i-1)*pi*x)/(2*a)))/((2*i-1)**3)));
u(i,x,y)=(i==0)?0:u(i-1,x,y)+Sum(i,x,y);
splot [-a:a] [-b:b] u(20,x,y)};
\end{axis}
\end{tikzpicture}
\caption{So soll es nicht aussehen. Es müssen noch viel mehr Datenpunkte berechnet werden...}
\end{figure}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[colormap/greenyellow,colorbar,view={0}{90}]
\addplot3[surf,domain=0:360,samples=25]
{sin(x)*sin(y)};
\end{axis}
\end{tikzpicture}
\caption{...aber so soll es in etwa sein!!! Nur leider ist das die falsche Funktion und die ist auch nicht mit Gnuplot berechnet}
\end{figure}
\end{document}
Das hat mich meinem Ziel zwar etwas näher gebracht, aber zufrieden bin ich damit bei weitem nicht. Ich glaube in einem solchen Fall ist es wirklich einfacher, die Funtkion direkt in Gnuplot über das Postscript Terminal zu exportieren. Ich hätte es halt schön gefunden alles einheitlich mit pgf-Plots zu machen. Interessant bei meinem obigen Code finde ich übrigens, dass der Graph wieder schlechter dargestellt wird, wenn sample=500 oder sogar noch größer gesetzt wird. Es war ein reiner Glücksgriff, dass ich es mit sample=100 gestet habe und da der Graph am besten dargestellt wird.
Wenn mir hier trotzdem noch Jemand weiterhelfen möchte, kann er das gerne konkret an meinem Beispiel tun, oder wer Beispiele für 3-dimensionale Funktionen aller Art postet, die mit Gnuplot im Zusammenspiel mit pgf-Plots erstellt worden sind bin ich darüber auch sehr dankbar.
Soooo, mittlerweile habe ich ein bisschen weiter "rumprobiert" und mein Code sieht mittlerweile so aus:
[code]\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.3}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[colormap/greenyellow,colorbar, view={0}{90}]
\addplot3[raw gnuplot] gnuplot[surf,mesh/check=false,samples=100]{
c=1e-5;
a=100e-6;
b=20e-6;
p=-100000;
K=((16*a**2)/(c*pi**3))*(-p);
Sum(i,x,y)=K*(((-1)**(0.5*((2*i-1)-1)))*(1-((cosh(((2*i-1)*pi*y)/(2*a)))/(cosh(((2*i-1)*pi*b)/(2*a)))))*((cos(((2*i-1)*pi*x)/(2*a)))/((2*i-1)**3)));
u(i,x,y)=(i==0)?0:u(i-1,x,y)+Sum(i,x,y);
splot [-a:a] [-b:b] u(20,x,y)};
\end{axis}
\end{tikzpicture}
\caption{So soll es nicht aussehen. Es müssen noch viel mehr Datenpunkte berechnet werden...}
\end{figure}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[colormap/greenyellow,colorbar,view={0}{90}]
\addplot3[surf,domain=0:360,samples=25]
{sin(x)*sin(y)};
\end{axis}
\end{tikzpicture}
\caption{...aber so soll es in etwa sein!!! Nur leider ist das die falsche Funktion und die ist auch nicht mit Gnuplot berechnet}
\end{figure}
\end{document}[/code]
Das hat mich meinem Ziel zwar etwas näher gebracht, aber zufrieden bin ich damit bei weitem nicht. Ich glaube in einem solchen Fall ist es wirklich einfacher, die Funtkion direkt in Gnuplot über das Postscript Terminal zu exportieren. Ich hätte es halt schön gefunden alles einheitlich mit pgf-Plots zu machen. Interessant bei meinem obigen Code finde ich übrigens, dass der Graph wieder schlechter dargestellt wird, wenn sample=500 oder sogar noch größer gesetzt wird. Es war ein reiner Glücksgriff, dass ich es mit sample=100 gestet habe und da der Graph am besten dargestellt wird.
Wenn mir hier trotzdem noch Jemand weiterhelfen möchte, kann er das gerne konkret an meinem Beispiel tun, oder wer Beispiele für 3-dimensionale Funktionen aller Art postet, die mit Gnuplot im Zusammenspiel mit pgf-Plots erstellt worden sind bin ich darüber auch sehr dankbar.