If you want advanced plotting things in SymPy it's often easier to plot your function directly with matplotlib using something like
import numpy as np
import matplotlib.pyplot as plt
a = np.linspace(-10, 10, 1000) # Replace with your desired range and number of points
f = sympy.lambdify(x, expr)
plt.plot(a, f(a))
# Modify the matplotlib plot using matplotlib functions here
This is more or less what sympy.plot does internally. The key here is that lambdify() will convert a SymPy expression into a NumPy function which can be applied to a numpy linspace and used directly with matplotlib's plot.
Aaron Meurer