Hi all,

there is a problem with plotting using `ImplicitEquations`

:

```
using Plots, ImplicitEquations, LaTeXStrings
gr()
f(x,y) = y^2 - 3y - 4 - x
g(x,y) = x+y
plot(f == 0,-5,5, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
plot!(g == 0,-5,5, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
```

it returns empty plot.

I want to plot x = y^2 - 3y - 4, x=-y

anyone can help me?

1 Like

Dan
February 6, 2023, 7:26am
2
The problem is that ImplicitEquations wants you to use a Unicode operator written using `\Equal<tab>`

on REPL to get the desired effect.

This is the big fear with Unicode, having minutely perceptible source code differences matter. In any case, here is some code that works:

```
julia> plot(f ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
julia> plot!(g ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
```

Note that dropping the range `-5,5`

is also necessary, since `plot`

is specialized for this operator and seems to use the `xlims`

and `ylims`

to pick range.

Since I only looked at the README at the `ImplicitEquations.jl`

repo, it’s possible a deeper look will show more useful functions to pre-prepare the series for plotting exactly as you wish.

3 Likes

I see why it becomes empty plot back then. Thanks

Why there is a weirdness when I want to fill the left side there is an invisible barrier at x=-5

```
using Plots, ImplicitEquations
f(x, y) = y^2 - 3y - 4 - x
g(x,y) = x+y
plot(f ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
plot!(g ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
plot!((f ≦ 0) & (g ≦ 0), fc=:blues,
label="", widen=true)
```

1 Like

Freya_the_Goddess:

```
using Plots, ImplicitEquations
f(x, y) = y^2 - 3y - 4 - x
g(x,y) = x+y
plot(f ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
plot!(g ⩵ 0, xtick=-7:1:5, xlims=(-7,5), ylims=(-5,5),
framestyle=:zerolines,
label="", legend=:topright)
plot!((f ≦ 0) & (g ≦ 0), fc=:blues,
label="", widen=true)
```

There must be a bug in the recipe, try manually adding the `xlims`

argument:

```
plot!((f ≦ 0) & (g ≦ 0), xlims=(-7,5), fc=:blues,
label="", widen=true)
```

2 Likes

Dan
February 6, 2023, 4:08pm
6
Yeah, it seems so. Specifically, because `g`

function goes out of the viewport below -5, then it is no longer considered in the set `g <= 0`

. One way would be to widen the `y-range`

a bit… or to dig out this bug.

There is an issue here: xlims ylims · Issue #45 · jverzani/ImplicitEquations.jl · GitHub

Basically, I need to learn how to get the `xlims`

(and `ylims`

) from the existing graphic in the recipe.

1 Like

Dan
February 6, 2023, 4:40pm
8
One way to hack around this problem is:

```
julia> plot!((f ≦ 0) & (g ≦ 0), fc=:blues,
label="", ylims=(-10,10), xlims=(-10,10), widen=true)
julia> plot!(fc=:blues,
label="", ylims=(-5,5), xlims=(-7,5), widen=true)
```

which draw the right set in the first instance (because of wider `lims`

and then zooms back to the narrower `lims`

.

1 Like

This one suggestion works, thanks a lot!

1 Like