matplotlib 如何并排绘制2D等高线图和3D曲面图[复制]

woobm2wo  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(172)

此问题已在此处有答案

How to combine 3d projections with 2d subplots and set the width(1个答案)
How to plot figures to different subplot axes(1个答案)
11天前关闭
I want these two plots to appear side by side
我正在使用此代码。

fig, ax = plt.subplots(1, 1)
cs = ax.contour(W, B, contour_cost, levels=50) 
ax.plot(model_1.w_hist, model_1.b_hist, color='magenta')
ax.scatter(model_1.w_hist, model_1.b_hist, marker='*', s=40, c='red')
ax.set_xlabel('w')
ax.set_ylabel('b')

fig2 = plt.figure()
ax2 = plt.axes(projection='3d')
ax2.plot_surface(W, B, contour_cost, cmap='plasma')
plt.show()
mgdq6dx1

mgdq6dx11#

fig, ax = plt.subplots(1, 2)将并排设置您的子图。
ax[0,0]ax[0,1]将表示不同的子图。

4xy9mtcn

4xy9mtcn2#

你的思路是对的,但你需要
ax1 = fig.add_subplot(1,2,1)

ax2 = fig.add_subplot(1,2,2, projection = '3d')
在你分别调用scatterplot_surface函数之前。目前你的fig2ax2与你在第一部分中初始化的子图无关。另外,注意subplot(1,1)只会生成一个1x1网格的子图,而不是你要求的1x2。
matplotlib documentation有一个很好的3D子图示例
另一个相关的StackOverflow答案是here

相关问题