# Size problems when plotting xy/(x^2+2y^2)

I would like to plot the funtion xy/(x^2+2y^2) using PGFPlots. Here is what I want:

\documentclass{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=1in,footskip=0.25in]{geometry}
\usepackage{amssymb}
\usepackage{amsmath}

\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\pgfplotsset{soldot/.style={color=black,only marks,mark=*}}
\pgfplotsset{holdot/.style={color=red,fill=white,very thick,only marks,mark=*}}

\begin{document}
\begin{center}
\begin{tikzpicture}[declare function={f(\x,\y)=(\x*\y)/(\x*\x+2*\y*\y);}]
\begin{axis} [
axis on top,
axis equal image,
axis lines=center,
xlabel=$x$,
ylabel=$y$,
zlabel=$z$,
zmin=-1,
zmax=1,
ztick={-1,0,0.33,1},
zticklabels={$-1$,$0$,$1/3$,$1$},
ticklabel style={font=\tiny},
legend pos=outer north east,
legend style={cells={align=left}},
legend cell align={left},
view={-135}{25},
]
\end{axis}
\end{tikzpicture}
\end{center}

\end{document}


The MWE output has an incredible big zoom, so I would like to resize the plot but not using scale but another commands, like enlarge limits. However, all the results are in vain; I can not reproduce the visual appearance of what I want.

Thanks!!

• Are you sure you want to plot the function in this way? If you use polar coordinates in the x-y plane, x=r cos(\phi) and y=r sin(\phi), you see that the function does not depend on r but only on the angle. This explains the behavior at 0, where the function is not well-defined. And otherwise the function depends only on one variable, so I am wondering if you would be better off if you plotted a function of one variable only, or at least use a different parametrization. – user121799 Feb 24 '19 at 7:02
• @marmot please see the edit. The function has a "normal" behaviour when changing domain y=-1.2:1 to domain y=-1:1. If you want to use change of variables go ahead :). Do you know how to "enlarge" the axis without rescaling the entire function in order to make it a little more bigger? – manooooh Feb 24 '19 at 7:05
• Normally you can set width=15cm or something like this. Of course, with axis equal image, one needs to be a bit careful. What I meant to say is that the function is not well-defined at x=y=0 and otherwise only a function that depends on one variable, not on two. You see this actually rather well in the upper plot. – user121799 Feb 24 '19 at 7:11
• I need to sleep so I will just post some 1d plot. – user121799 Feb 24 '19 at 7:28
• Please do not alter the question that essentially by editing. It is much better to ask a new question. – TeXnician Feb 24 '19 at 7:45

Not an answer to the (LaTeX part of the) question. However, if you use polar coordinates in the x-y plane, x = r cos(ϕ) and y = r sin(ϕ), you see that the function does not depend on r but only on the angle. So away from the origin x = y = 0 all the information is already in a one-dimensional plot.

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}[declare function={fan(\t)=-(sin(2*\t)/(-3 + cos(2*\t)));}]
\begin{axis}
\end{axis}
\end{tikzpicture}
\end{document}


And this yields a 3d smooth plot.

\documentclass[tikz,border=3.14mm]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\pgfplotsset{soldot/.style={color=black,only marks,mark=*}}
\pgfplotsset{holdot/.style={color=red,fill=white,very thick,only marks,mark=*}}

\begin{document}
\begin{tikzpicture}[declare function={f(\x,\y)=(\x*\y)/(\x*\x+2*\y*\y);
fan(\t)=-(sin(2*\t)/(-3 + cos(2*\t)));}]
\begin{axis} [width=18cm,
axis on top,
axis equal image,
axis lines=center,
xlabel=$x$,
ylabel=$y$,
zlabel=$z$,
zmin=-1,
zmax=1,
ztick={-1,0,0.33,1},
zticklabels={$-1$,$0$,$1/3$,$1$},
ticklabel style={font=\tiny},
legend pos=outer north east,
legend style={cells={align=left}},
legend cell align={left},
view={-135}{25},
data cs=polar,
]

\addlegendentry{{$f(x,y)$}}