Trazar modelo lineal en 3d con Matplotlib

Estoy tratando de crear una gráfica en 3D de un modelo lineal que se ajuste a un conjunto de datos. Pude hacer esto con relativa facilidad en R, pero realmente estoy luchando por hacer lo mismo en Python. Esto es lo que he hecho en R:

Esto es lo que he hecho en Python:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import statsmodels.formula.api as sm

csv = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv', index_col=0)
model = sm.ols(formula='Sales ~ TV + Radio', data = csv)
fit = model.fit()

fit.summary()

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.scatter(csv['TV'], csv['Radio'], csv['Sales'], c='r', marker='o')

xx, yy = np.meshgrid(csv['TV'], csv['Radio'])

# Not what I expected :(
# ax.plot_surface(xx, yy, fit.fittedvalues)

ax.set_xlabel('TV')
ax.set_ylabel('Radio')
ax.set_zlabel('Sales')

plt.show()

¿Qué estoy haciendo mal y qué debo hacer en su lugar?

Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta