tikz add tag
CarLaTeX
This code:

```
\documentclass[11pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{calc, intersections, fit}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{positioning}
\usetikzlibrary{backgrounds}
\tikzset{
	declare function={
		iperbole(\x)=
			(sqrt((.4)+(.04*(\x-2)^2)))
			;
		}
	}
	\pgfplotsset{
		assi/.style={
			axis lines=middle,
			axis line style={-Stealth},
			ticks=none,
			samples=300,
			clip=false,
			width=10cm
			},
	}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    assi,
		ymin=-3,
		xmin=-0.05,
		enlargelimits={value=.05,upper},
    xlabel = {$\sigma$},
    ylabel = {$\mu$},
    every axis x label/.style={at=(current axis.right of origin),		anchor=north east},
    every axis y label/.style={at=(current axis.above origin),		anchor=north east},
	] 
	\addplot[
		thick,
		domain={-3:11},
        restrict y to domain={2:11},
        smooth, name path=frontier
		]
		({iperbole(\x)},{x});
    \addplot[
		thick, dashed,
		domain={-3:7},
        restrict y to domain={-2:2},
        smooth, name path=boundary
		]
		({iperbole(\x)},{x});
    \pgfmathsetmacro{\MVPx}{iperbole(2)}
    \pgfmathsetmacro{\Sx}{iperbole(2.5)}
    \pgfmathsetmacro{\Lx}{iperbole(5)}
    \pgfmathsetmacro{\MAXx}{iperbole(11)}
    \pgfmathsetmacro{\INTER}{7.5*\MVPx-2}
    \addplot[thick,dotted,domain={0:\MAXx}, smooth, name path=varbasso] {7.5*x-\INTER};
    \addplot[thick,domain={0:\MAXx}, smooth, name path=varalto] {7.5*x-2};
    \draw[fill=black,name intersections={of=frontier and varalto, by={i1,i2}}] 
        (i1) circle (1pt) node [above left] {$I$}
        (i2) circle (1pt) node [above left] {$J$};
  \end{axis}
\end{tikzpicture}
\end{document}
```

worked one month ago (and works on Overleaf, which is not up-to-date), but now it gives this error:


```
! Argument of \pgfmathfloatparse@@ has an extra }.
<inserted text> 
                \par 
l.66   \end{axis}
                 
? 
! Emergency stop.
<inserted text> 
                \par 
l.66   \end{axis}
                 
End of file on the terminal!

```
Is it a bug?


Top Answer
samcarter
I think the problem is that tikz/pgf has changed the definition of the circle in [commit 1302de8 ](https://github.com/pgf-tikz/pgf/commit/1302de8a99834bb0e30ffc214a7350952c446ab6) to have only one argument instead of two. At the same time pgfplots still assumes two arguments.

I'd say this is a bug, but not sure if it should be reported to tikz or pgfplots.

A workaround could be to adjust the changes pgfplots makes to only have one argument:


```
\documentclass[11pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{calc, intersections, fit}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{positioning}
\usetikzlibrary{backgrounds}
\tikzset{
	declare function={
		iperbole(\x)=
			(sqrt((.4)+(.04*(\x-2)^2)))
			;
		}
	}
	\pgfplotsset{
		assi/.style={
			axis lines=middle,
			axis line style={-Stealth},
			ticks=none,
			samples=300,
			clip=false,
			width=10cm
			},
	}
	
\makeatletter
\def\pgfplots@path@@tikz@do@circle#1{%
  \begingroup
  \ifpgfplots@usefpu
	\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
  \fi
  \pgfmathparse{#1}%
  \let\tikz@ellipse@x=\pgfmathresult%
  \ifpgfmathunitsdeclared%
    \pgfmathparse{#1}%
    \let\tikz@ellipse@y=\pgfmathresult%
    \ifpgfmathunitsdeclared%
      \pgfpathellipse{\pgfpointorigin}{%
        \pgfqpoint{\tikz@ellipse@x pt}{0pt}}{\pgfpoint{0pt}{\tikz@ellipse@y pt}}%
    \else%
      \PackageError{tikz}{You cannot mix dimensions and dimensionless values in an ellipse}{}%
    \fi%
  \else%
    \pgfmathparse{#1}%
    \let\tikz@ellipse@y=\pgfmathresult%
    \ifpgfmathunitsdeclared%
      \PackageError{tikz}{You cannot mix dimensions and dimensionless values in an ellipse}{}%
    \else%
      \pgfpathellipse{\pgfpointorigin}
	  	{\pgfplotspointaxisdirectionxy{\tikz@ellipse@x}{0}}
		{\pgfplotspointaxisdirectionxy{0}{\tikz@ellipse@y}}%
    \fi%
  \fi%
  \endgroup
}
\makeatother
	

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    assi,
		ymin=-3,
		xmin=-0.05,
		enlargelimits={value=.05,upper},
    xlabel = {$\sigma$},
    ylabel = {$\mu$},
    every axis x label/.style={at=(current axis.right of origin),		anchor=north east},
    every axis y label/.style={at=(current axis.above origin),		anchor=north east},
	] 
	\addplot[
		thick,
		domain={-3:11},
        restrict y to domain={2:11},
        smooth, name path=frontier
		]
		({iperbole(\x)},{x});
    \addplot[
		thick, dashed,
		domain={-3:7},
        restrict y to domain={-2:2},
        smooth, name path=boundary
		]
		({iperbole(\x)},{x});
    \pgfmathsetmacro{\MVPx}{iperbole(2)}
    \pgfmathsetmacro{\Sx}{iperbole(2.5)}
    \pgfmathsetmacro{\Lx}{iperbole(5)}
    \pgfmathsetmacro{\MAXx}{iperbole(11)}
    \pgfmathsetmacro{\INTER}{7.5*\MVPx-2}
    \addplot[thick,dotted,domain={0:\MAXx}, smooth, name path=varbasso] {7.5*x-\INTER};
    \addplot[thick,domain={0:\MAXx}, smooth, name path=varalto] {7.5*x-2};
    \draw[fill=black,name intersections={of=frontier and varalto, by={i1,i2}}] 
        (i1) circle (1pt) node [above left] {$I$}
        (i2) circle (1pt) node [above left] {$J$};
  \end{axis}
\end{tikzpicture}
\end{document}
```

---

### Update:

This problem has now been fixed by pgfplots, see https://github.com/pgf-tikz/pgfplots/commit/34c3f2ef3606d09bdeee306a02884126f8bdc975
Answer #2
marmot
@samcarter told you what the culprit is. It is, however, also true that the (preferred) syntax for circles has been changed. For some time it is 

```
\draw circle[radius=<length>];
```

instead of 

```
\draw circle(<length>);
```

So the following also works:


```
\documentclass[11pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{arrows.meta}
	\pgfplotsset{
		assi/.style={
			axis lines=middle,
			axis line style={-Stealth},
			ticks=none,
			samples=300,
			clip=false,
			width=10cm
			},
	}

\begin{document}
\begin{tikzpicture}[declare function={
		iperbole(\x)=
			(sqrt((.4)+(.04*(\x-2)^2)))
			;}]
  \begin{axis}[
    assi,
		ymin=-3,
		xmin=-0.05,
		enlargelimits={value=.05,upper},
    xlabel = {$\sigma$},
    ylabel = {$\mu$},
    every axis x label/.style={at=(current axis.right of origin),		anchor=north east},
    every axis y label/.style={at=(current axis.above origin),		anchor=north east},
	] 
	\addplot[
		thick,
		domain={-3:11},
        restrict y to domain={2:11},
        smooth, name path=frontier
		]
		({iperbole(\x)},{x});
    \addplot[
		thick, dashed,
		domain={-3:7},
        restrict y to domain={-2:2},
        smooth, name path=boundary
		]
		({iperbole(\x)},{x});
    \pgfmathsetmacro{\MVPx}{iperbole(2)}
    \pgfmathsetmacro{\Sx}{iperbole(2.5)}
    \pgfmathsetmacro{\Lx}{iperbole(5)}
    \pgfmathsetmacro{\MAXx}{iperbole(11)}
    \pgfmathsetmacro{\INTER}{7.5*\MVPx-2}
    \addplot[thick,dotted,domain={0:\MAXx}, smooth, name path=varbasso] {7.5*x-\INTER};
    \addplot[thick,domain={0:\MAXx}, smooth, name path=varalto] {7.5*x-2};
    \draw[fill=black,name intersections={of=frontier and varalto, by={i1,i2}}] 
        (i1) circle[radius=1pt] node [above left] {$I$}
        (i2) circle[radius=1pt] node [above left] {$J$};
  \end{axis}
\end{tikzpicture}
\end{document}
```

Notice that I also removed libraries that were not used and loaded the `pgfplots` library `fillbetween` to do the intersections.

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.