Python 如何创建包含所有“我的绘图”的多个“一个绘图”

Python 如何创建包含所有“我的绘图”的多个“一个绘图”,python,matplotlib,Python,Matplotlib,这段代码创建了两个独立的绘图,我想创建一个包含这两个绘图的绘图。我留下了一个绘图显示方式的图像。谢谢你的帮助 一个建议的解决方案是避免绘制两次,而是使用子图,但这会导致两个图相互平分,是否有任何建议的修复 fig = plt.figure() ax = fig.add_subplot(111) scatter = ax.scatter(wh1['area'],wh1['rain'], c=kmeans[0],s=50) ax.set_title('K-

这段代码创建了两个独立的绘图,我想创建一个包含这两个绘图的绘图。我留下了一个绘图显示方式的图像。谢谢你的帮助

一个建议的解决方案是避免绘制两次,而是使用子图,但这会导致两个图相互平分,是否有任何建议的修复

fig = plt.figure()
ax = fig.add_subplot(111)
scatter = ax.scatter(wh1['area'],wh1['rain'],
                     c=kmeans[0],s=50)
ax.set_title('K-Means Clustering')
ax.set_xlabel('area')
ax.set_ylabel('rain')
plt.colorbar(scatter)


fig = plt.figure()
ax1 = fig.add_subplot(111)
scatter = ax.scatter(wh1['area'],wh1['wind'],
                     c=kmeans[0],s=50)
ax1.set_title('K-Means Clustering')
ax1.set_xlabel('area')
ax1.set_ylabel('wind')
plt.colorbar(scatter)
plot.show()

您可以使用子批。您可以在同一个图形上调用
add_subplot
,而不是生成不同的图形

您可以使用以下代码生成地物,并获得地物的句柄:

fig = plt.figure()
ax = fig.add_subplot(121)
scatter = ax.scatter(wh1['area'],wh1['rain'],
                     c=kmeans[0],s=50)
ax.set_title('K-Means Clustering')
ax.set_xlabel('area')
ax.set_ylabel('rain')
plt.colorbar(scatter)



ax1 = fig.add_subplot(122)
scatter = ax.scatter(wh1['area'],wh1['wind'],
                     c=kmeans[0],s=50)
ax1.set_title('K-Means Clustering')
ax1.set_xlabel('area')
ax1.set_ylabel('wind')
plt.colorbar(scatter)
然后,通过传递给
add_subplot
函数的数字,确定该图形中的绘图行数和绘图列数。例如,如果需要一行两列的布局,则参数中的前两位数字为12,第三位数字确定哪个单元格:

fig = plt.figure()
因此,您的代码如下所示:

ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)

您可以使用子地块。您可以在同一个图形上调用
add_subplot
,而不是生成不同的图形

您可以使用以下代码生成地物,并获得地物的句柄:

fig = plt.figure()
ax = fig.add_subplot(121)
scatter = ax.scatter(wh1['area'],wh1['rain'],
                     c=kmeans[0],s=50)
ax.set_title('K-Means Clustering')
ax.set_xlabel('area')
ax.set_ylabel('rain')
plt.colorbar(scatter)



ax1 = fig.add_subplot(122)
scatter = ax.scatter(wh1['area'],wh1['wind'],
                     c=kmeans[0],s=50)
ax1.set_title('K-Means Clustering')
ax1.set_xlabel('area')
ax1.set_ylabel('wind')
plt.colorbar(scatter)
然后,通过传递给
add_subplot
函数的数字,确定该图形中的绘图行数和绘图列数。例如,如果需要一行两列的布局,则参数中的前两位数字为12,第三位数字确定哪个单元格:

fig = plt.figure()
因此,您的代码如下所示:

ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)


请注意,绘制第二次散射时有一个错误。你应该在ax1上调用散布函数,但你确实在ax上调用了该函数。是的,我认为@Aminghebi建议了一个解决方案,解决了在绘制两次时调用的问题,但在执行他建议的操作时,我遇到了另一个问题,即图形没有正确定向。定向是相同的。当您通过
fig=plt.figure(figsize=(8,6))
创建图形时,需要增加图形的大小。你知道,因为在一个图形中有两个绘图,所以空间较小,你应该留出空间。
figsize
函数中的这两个数字决定了图形的宽度和高度。如果您希望图形更宽,可以增加8。这部分代码中也有一个错误:
ax1=fig.add_子图(122)scatter=ax.scatter(wh1['area'],wh1['wind'],c=kmeans[0],s=50)
。您需要在
ax1
中绘图,但您是在
ax
中进行的。错误在第13行。请注意,绘制第二个散点时出错。你应该在ax1上调用散布函数,但你确实在ax上调用了该函数。是的,我认为@Aminghebi建议了一个解决方案,解决了在绘制两次时调用的问题,但在执行他建议的操作时,我遇到了另一个问题,即图形没有正确定向。定向是相同的。当您通过
fig=plt.figure(figsize=(8,6))
创建图形时,需要增加图形的大小。你知道,因为在一个图形中有两个绘图,所以空间较小,你应该留出空间。
figsize
函数中的这两个数字决定了图形的宽度和高度。如果您希望图形更宽,可以增加8。这部分代码中也有一个错误:
ax1=fig.add_子图(122)scatter=ax.scatter(wh1['area'],wh1['wind'],c=kmeans[0],s=50)
。您需要打印到
ax1
中,但您是在
ax
中进行的。错误出现在第13行。感谢您的建议,此解决方案可以正常工作,但会导致其他问题。这些图相互交叉。第二个图甚至没有显示集群。关于如何解决这个问题,有什么建议吗?我编辑了这个问题,并留下了一张图片,显示了运行时发生的情况。如果您想在子地块之间留出一些空间(删除相交轴),您可以使用子地块调整功能:关于第二个地块没有显示任何内容的问题,我已经在上面提到过。第13行有个错误。请查看问题下方的评论。感谢您的建议,此解决方案有点可行,但会导致其他问题。这些图相互交叉。第二个图甚至没有显示集群。关于如何解决这个问题,有什么建议吗?我编辑了这个问题,并留下了一张图片,显示了运行时发生的情况。如果您想在子地块之间留出一些空间(删除相交轴),您可以使用子地块调整功能:关于第二个地块没有显示任何内容的问题,我已经在上面提到过。第13行有个错误。请查看您的问题下方的评论。