我有以下代码,我在其中遍历 2 个参数的网格,以查看哪组参数会产生最佳结果。
from sklearn.grid_search import ParameterGrid
ar1= np.arange(1,10,0.1)
ar2= np.arange(0.1,3,0.01)
param_grid = {'p1': ar1, 'p2' : ar2}
grid = ParameterGrid(param_grid)
result=[]
p1=[]
p2=[]
for params in grid:
r = getresult(params['p1'], params['p2'])
result.append(r)
p1.append(params['p1'])
p2.append(params['p2'])
结果我得到了 3 个数组,一个包含每次迭代的结果,两个数组 (p1,p2) 带有相应的参数。我现在想用 matplotlib 绘制这些数据,以可视化结果在参数平面上的变化情况。
我尝试了以下操作,但得到了一个空白图:
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(p1, p2, result)
理想情况下,我希望能够创建如下图所示的内容。如何使用 matplotlib 完成此操作?
最佳答案
我最终采用了以下解决方案:
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(X, Y, Z, cmap=cm.jet, linewidth=0)
fig.tight_layout()
plt.show()
以上产生了所需的可视化,如下所示:
关于Python可视化优化参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43301191/