简体   繁体   English

Matplotlib-如何绘制3D平面

[英]Matplotlib - How to draw a 3D plane

I want to draw a 3D-plane graph using matplotlib . 我想使用matplotlib绘制3D平面图。 I do not understand why I receive an error to indicate x and y must be the same length. 我不明白为什么我会收到错误消息,以指示xy的长度必须相同。

In [134]: dat_vis 在[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

In [135]: ax.plot_trisurf(dat_vis.x, dat_vis.y, dat_vis.mean_test_score) 在[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

I get the Dataframe object from the sklearn.model_selection.GridSearchCV(). 我从sklearn.model_selection.GridSearchCV()获得Dataframe对象。 it return an object dtypes columns, so when i try to use the variance to draw a gragh, it can't be operated well. 它返回一个对象的dtypes列,所以当我尝试使用方差绘制梯度时,它不能很好地进行操作。 so if you can't find where the question is ,you should come back and make sure you have a right dtypes. 因此,如果您找不到问题所在,则应返回并确保您拥有正确的dtypes。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM