# -*- coding: utf-8 -*-
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
red = "#e41a1c"
gray = "#666666"
plt.rcParams["mathtext.fontset"] = "cm"
plt.rcParams["axes.spines.top"] = False
plt.rcParams["axes.spines.right"] = False
plt.rcParams["axes.edgecolor"] = gray
plt.rcParams["xtick.ecolor"] = gray
plt.rcParams["ytick.edgecolor"] = gray
a, b, c, d = 1, 1, 1, 1
y, x, = np.mgrid[-10:10:101j, -4:4:101j]
z = x*y + a*x**3 + b*x**2 + c*x - d
fig, ax = plt.subplots(figsize=(4, 3))
plt.contour(x, y, z, [0], colors=red)
plt.xlabel(r"$x$", fontsize=16)
plt.ylabel(r"$y$", rotation="horizontal", fontsize=16)
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
plt.xticks([-4, -2, 2, 4])
plt.yticks([-10, -5, 5, 10])
ax.xaxis.set_label_coords(1.0, 0.6)
ax.yaxis.set_label_coords(0.55, 0.95)
plt.grid(alpha=0.2)
plt.savefig("newton_trident.svg")
plt.show()