使用 tikzpicture 环境绘制 x^3 - y^2 - y = 0 的图形

使用 tikzpicture 环境绘制 x^3 - y^2 - y = 0 的图形

请考虑这个MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\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}
        \begin{axis}[
            legend pos=outer north east,
            axis lines = center,
            label style={font=\tiny},
            legend style={font=\tiny},
            xticklabel style = {font=\tiny},
            yticklabel style = {font=\tiny},
            xlabel = $x$,
            ylabel = $y$,
            clip=false,
            legend style={cells={align=left}}
        ]
        \addplot[red,thick] {x*x*x-y*y-y};
    \end{axis}
\end{tikzpicture}
\end{center}

\end{document}

原始图表

Overleaf 抛出了以下错误:

! 软件包 pgfplots 错误:抱歉,您不能在此上下文中使用“y”。PGFPlots 需要采样一条线,而不是一个网格。请使用 [mesh] 选项结合 [samples y>0] 和 [domain y!=0:0] 来指示二维输入域。

所以我改变

\addplot[red,thick] {x*x*x-y*y-y};

为了

\addplot[samples y>0, domain y!=0:0,red,thick] {x*x*x-y*y-y};

但现在出现了4个错误,使用addlegendentry图片时网格图片而不是正常的线。

我想绘制这样的隐函数图:

我想要的是

不使用 gnuplot。那可能吗?

谢谢!

答案1

您希望绘制x^3-y^2-y=0,这相当于x^3=y^2+yx=sign(y^2+y)\cdot|y^2+y|^{1/3}

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture} 
\begin{axis}[axis lines=middle,xlabel=$x$,ylabel=$y$,title=lul]
    \addplot[red,domain=-1.1:0.6,samples=101] 
    ({sign(x*x+x)*pow(abs(x*x+x),1/3)},x);
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容