在 python 中绘制多个图形
plotting multiple figures in python
也许标题有误导性,或者有人会告诉我这是重复的。然而,经过许多(许多)小时的浏览后,我什么也没找到。我想绘制多个散点图并将它们合并为一些 nrows 和 ncols 的子图?
假设我们有以下内容:
new_list=[]
for j in list(set(lala)):
df1 = df[df['Date'] == j]
df1.drop('Date', axis = 1, inplace = True)
df2 = df1.groupby('Z').mean()
df2.reset_index(inplace = True)
new_list.append(df2)
for j in range(0, len(new_list)):
plt.figure(figsize=(6, 6), dpi=80)
plt.scatter(new_list[j]['X'],new_list[j]['Y'])
让我稍微解释一下它的作用;我创建了一个名为 new_list 的列表,其中包含在 for 循环中构造的数据帧(您可以忽略该构造,因为我要求的是全局方法)。然后,我为new_list[=中的每个数据框打印散点图(总共与new_list的元素个数一样多) 25=]。
因为打印输出的数量很多,我想从这些打印输出中创建子图,使最终图像更容易被人看到。
那么我怎样才能把所有这些散点图合并成一些 nrows 和 ncols 的子图呢?
假设你有 4 行和 10 列,你可以这样做(只是一种方法)。这里 flatten
returns 是一个包含 40 个轴对象 (4 x 10) 的列表,其中顺序跨行:第一行先四列,然后第二行四列,依此类推。
fig, axes = plt.subplots(nrows=4, ncols=10)
for i, ax in enumerate(axes.flatten()):
ax.scatter(new_list[i]['X'],new_list[i]['Y'])
如果你不想使用enumerate
,或者你也可以使用下面的
fig, axes = plt.subplots(nrows=4, ncols=10)
ax = axes.flatten()
for j in range(0, len(new_list)):
ax[j].scatter(new_list[j]['X'],new_list[j]['Y'])
也许标题有误导性,或者有人会告诉我这是重复的。然而,经过许多(许多)小时的浏览后,我什么也没找到。我想绘制多个散点图并将它们合并为一些 nrows 和 ncols 的子图?
假设我们有以下内容:
new_list=[]
for j in list(set(lala)):
df1 = df[df['Date'] == j]
df1.drop('Date', axis = 1, inplace = True)
df2 = df1.groupby('Z').mean()
df2.reset_index(inplace = True)
new_list.append(df2)
for j in range(0, len(new_list)):
plt.figure(figsize=(6, 6), dpi=80)
plt.scatter(new_list[j]['X'],new_list[j]['Y'])
让我稍微解释一下它的作用;我创建了一个名为 new_list 的列表,其中包含在 for 循环中构造的数据帧(您可以忽略该构造,因为我要求的是全局方法)。然后,我为new_list[=中的每个数据框打印散点图(总共与new_list的元素个数一样多) 25=]。
因为打印输出的数量很多,我想从这些打印输出中创建子图,使最终图像更容易被人看到。
那么我怎样才能把所有这些散点图合并成一些 nrows 和 ncols 的子图呢?
假设你有 4 行和 10 列,你可以这样做(只是一种方法)。这里 flatten
returns 是一个包含 40 个轴对象 (4 x 10) 的列表,其中顺序跨行:第一行先四列,然后第二行四列,依此类推。
fig, axes = plt.subplots(nrows=4, ncols=10)
for i, ax in enumerate(axes.flatten()):
ax.scatter(new_list[i]['X'],new_list[i]['Y'])
如果你不想使用enumerate
,或者你也可以使用下面的
fig, axes = plt.subplots(nrows=4, ncols=10)
ax = axes.flatten()
for j in range(0, len(new_list)):
ax[j].scatter(new_list[j]['X'],new_list[j]['Y'])