Matplotlib-如何绘制3D平面

时间:2018-12-06 11:09:16

标签: python matplotlib

我想使用 matplotlib 绘制3D平面图。我不明白为什么我收到一条错误消息,指出xy的长度必须相同。

  

在[134]中:dat_vis

Out[134]: 

   param_C param_gamma  mean_test_score           x  y
4        1       0.001         0.875129           0  1
5        1      0.0001         0.844759           0  0
6       10       0.001         0.903091  0.00900901  1
7       10      0.0001         0.875191  0.00900901  0
8      100       0.001         0.899622   0.0990991  1
9      100      0.0001         0.902420   0.0990991  0
10    1000       0.001         0.909187           1  1
11    1000      0.0001         0.896094           1  0
  

在[135]中:ax.plot_trisurf(dat_vis.x,dat_vis.y,dat_vis.mean_test_score)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-135-1693be3ae757> in <module>()
----> 1 ax.plot_trisurf(dat_vis.x, dat_vis.y, dat_vis.mean_test_score)

~/anaconda3/lib/python3.6/site-packages/mpl_toolkits/mplot3d/axes3d.py in plot_trisurf(self, *args, **kwargs)
   1976         lightsource = kwargs.pop('lightsource', None)
   1977 
-> 1978         tri, args, kwargs = Triangulation.get_from_args_and_kwargs(*args, **kwargs)
   1979         if 'Z' in kwargs:
   1980             z = np.asarray(kwargs.pop('Z'))

~/anaconda3/lib/python3.6/site-packages/matplotlib/tri/triangulation.py in get_from_args_and_kwargs(*args, **kwargs)
    162             mask = kwargs.pop('mask', None)
    163 
--> 164             triangulation = Triangulation(x, y, triangles, mask)
    165         return triangulation, args, kwargs
    166 

~/anaconda3/lib/python3.6/site-packages/matplotlib/tri/triangulation.py in __init__(self, x, y, triangles, mask)
     53             # No triangulation specified, so use matplotlib._qhull to obtain
     54             # Delaunay triangulation.
---> 55             self.triangles, self._neighbors = _qhull.delaunay(x, y)
     56             self.is_delaunay = True
     57         else:

ValueError: x and y must be 1D arrays of the same length

1 个答案:

答案 0 :(得分:0)

我从sklearn.model_selection.GridSearchCV()获得Dataframe对象。它返回一个对象的dtypes列,所以当我尝试使用方差绘制梯度时,它不能很好地进行操作。因此,如果您找不到问题所在,则应返回并确保您拥有正确的dtypes。