此问题已在此处有答案:
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()
2条答案
按热度按时间mgdq6dx11#
fig, ax = plt.subplots(1, 2)
将并排设置您的子图。ax[0,0]
或ax[0,1]
将表示不同的子图。4xy9mtcn2#
你的思路是对的,但你需要
ax1 = fig.add_subplot(1,2,1)
和
ax2 = fig.add_subplot(1,2,2, projection = '3d')
在你分别调用
scatter
或plot_surface
函数之前。目前你的fig2
和ax2
与你在第一部分中初始化的子图无关。另外,注意subplot(1,1)
只会生成一个1x1网格的子图,而不是你要求的1x2。matplotlib documentation有一个很好的3D子图示例
另一个相关的StackOverflow答案是here