用python绘制多个图形

2024-03-28 10:00:56 发布

您现在位置:Python中文网/ 问答频道 /正文

也许标题是误导或有人会来告诉我,这是重复的。然而,经过许多(许多)小时的浏览,我没有发现任何东西。我想绘制多个散点图,并将它们合并到一些nrow和ncol的子图中?你知道吗

假设我们有以下条件:

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\u list的列表,其中包含在for循环中构造的数据帧(您可以忽略这个构造,因为我要求全局方法)。之后,我为new\u list中的每个数据帧打印散点图(总数与new\u list的元素数相同)。你知道吗

因为打印输出的数量很大,所以我想在这些打印输出的基础上创建子图,以使最终的图像更容易看到。你知道吗

那么,我怎样才能把这些散点图合并成一个子图来处理一些nrow和ncol呢?你知道吗


Tags: 数据intruedfnewfordateplt
1条回答
网友
1楼 · 发布于 2024-03-28 10:00:56

假设您有4行10列,您可以这样做(只有一种方法)。这里flatten返回一个包含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'])

相关问题 更多 >