Python で陰関数のグラフの表示

ここを参考にしました。

関数は id:mathnb さんの出題されたものです(参照)。

コードはこんな感じ。plot_implicit というのが陰関数の表示なのでしょうね。

from sympy import *

x, y = symbols("x y")
f = x ** 6 + 3 * x ** 4 * y ** 2 + 6 * x ** 4 * y - 2 * x ** 4 + 3 * x ** 2 * y ** 4 \
    - 2 *  x ** 2 * y ** 3 - 6 * x ** 2 * y ** 2 - 6 * x ** 2 * y + 3 * x ** 2 + y ** 6 \
    - 3 * y ** 4 + 3 * y ** 2 - 1
plot_implicit(f, (x, -2, 2), (y, -2, 2))

なお、この場合の描画にはかなり時間がかかります。複雑な関数だからですかね。


※追記
描かれた線に厚みがある理由はまったくわかりません。Python に聞いてくれとしか言いようがないですね(って無責任)。これって間違っているのですかね。検証が要るかなあ。面倒くさいなあ。

もしこれが間違っているとすれば、僕が Python のライブラリをよく理解していないか、あるいはこの関数は次数が大きいので、Python浮動小数点演算の精度が問題になっているのかも知れませんね。