【发布时间】:2021-04-24 13:16:13
【问题描述】:
我试图在 7 行 6 列中打印大约 42 个图,但是 jupyter notebook 中的打印输出显示所有图一个在另一个之下。我希望它们以 (7,6) 格式进行比较。我正在使用 matplotlib.subplot2grid() 函数。
注意:我没有收到任何错误,并且我的代码有效,但是这些图是一个在另一个之下,而不是在一个网格/矩阵形式中。 这是我的代码:
def draw_umap(n_neighbors=15, min_dist=0.1, n_components=2, metric='euclidean', title=''):
fit = umap.UMAP(
n_neighbors=n_neighbors,
min_dist=min_dist,
n_components=n_components,
metric=metric
)
u = fit.fit_transform(df);
plots = []
plt.figure(0)
fig = plt.figure()
fig.set_figheight(10)
fig.set_figwidth(10)
for i in range(7):
for j in range(6):
plt.subplot2grid((7,6), (i,j), rowspan=7, colspan=6)
plt.scatter(u[:,0], u[:,1], c= df.iloc[:,0])
plt.title(title, fontsize=8)
n=range(7)
d=range(6)
for n in n_neighbors:
for d in dist:
draw_umap(n_neighbors=n, min_dist=d, title="n_neighbors={}".format(n) + " min_dist={}".format(d))
我确实参考了这个post 以获取网格中的图并遵循代码。 我还参考了这个post,并修改了我的代码以获取无花果的大小。
使用 Seaborn 有没有更好的方法来做到这一点?
我在这里缺少什么?请帮忙!
【问题讨论】:
-
您介意检查您提供的代码中的缩进是否正确吗?对我来说,
draw_umap函数在哪里结束以及plt.scatter和plt.title是否应该在for j in range(6)循环中并不完全清楚。另外,我注意到n=range(7); d=range(6)是多余的,因为它们在以下循环中被覆盖。 -
缩进是对的。我认为,这只是 jupyter notebook 中的一个问题。我会仔细检查范围值。谢谢!
标签: python matplotlib jupyter-notebook visualization