ContourPlot is generating a strange plot
I don't know what version you are using, but ContourPlot
is a bit smarter in 11.3. The result I get here is:
ContourPlot[(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4)/(-x^2 +
2 x^2 y + 4 x^3 y + x y^2) == 0, {x, -4.5, 4.5}, {y, -4.5, 4.5},
PlotPoints -> 50]
In your version it appears that ContourPlot
assumes there is a zero contour if the function value is positive on one side and negative on the other. So what you're seeing is the boundary of the region where the function is positive:
RegionPlot[(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4)/(-x^2 +
2 x^2 y + 4 x^3 y + x y^2) > 0, {x, -4.5, 4.5}, {y, -4.5, 4.5},
PlotPoints -> 100]
The simplest workaround is to do what you already did - remove the denominator.
If you Plot both contours (numerator and denominator)
ContourPlot[{(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4) ==
0, (-x^2 + 2 x^2 y + 4 x^3 y + x y^2) == 0}, {x, -4.5,
4.5}, {y, -4.5, 4.5} , ContourStyle -> {Blue, Red},
MaxRecursion -> 4]
you can see some critical intersections where ContourPlot has to deal with 0/0