无限地绘制matplotlib子图?

时间:2018-06-18 02:01:30

标签: python matplotlib

说我正在测试聚类算法的一系列参数,我想编写python代码,将子算法2中的所有算法结果绘制成一行

有没有办法在不预先计算您需要多少总图的情况下执行此操作?

类似的东西:

for c in range(3,10):
    k = KMeans(n_clusters=c)
    plt.subplots(_, 2, _)
    plt.scatter(data=data, x='x', y='y', c=k.fit_predict(data))

...然后它会用“c”群集绘制“数据”每行2个图,直到它用完了绘图。

谢谢!

1 个答案:

答案 0 :(得分:0)

此问题的答案在matplotlib中动态添加/创建子图解释了一种实现方法: https://stackoverflow.com/a/29962074/3827277

verbatim复制和粘贴:

import matplotlib.pyplot as plt

# Start with one
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3])

# Now later you get a new subplot; change the geometry of the existing
n = len(fig.axes)
for i in range(n):
    fig.axes[i].change_geometry(n+1, 1, i+1)

# Add the new
ax = fig.add_subplot(n+1, 1, n+1)
ax.plot([4,5,6])

plt.show()