我正在嘗試創建適合數據集的線性模型的3D圖。我可以在R中相對容易地做到這一點,但我真的很努力地在Python中做同樣的事情。使用Matplotlib在3D中繪製線性模型
這裏就是我在Python進行:以下是我在R來
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()
什麼我做錯了,我該怎麼辦呢?
謝謝。
這類作品,但由此產生的平面非常糟糕繪製。我感到困惑的是,似乎沒有更好更簡單的方法來做到這一點。 – ivanmp 2014-10-17 21:14:53
不好怎麼樣?有許多參數可以提供給plot_surface。如果你想要3D,但你可能想看看mayavi。 – mdurant 2014-10-17 21:25:31
這是http://imgur.com/A5w55U6是我得到的(我刪除了'color ='None')。我正在尋找這樣的東西:http://stackoverflow.com/questions/15229896/matplotlib-3d-plots-combining-scatter-plot-with-surface-plot。順便說一句,感謝您的幫助。 – ivanmp 2014-10-17 21:29:09