gpt4 book ai didi

python - Matplotlib。在 'for loops' 中绘制到同一轴

转载 作者:行者123 更新时间:2023-11-28 19:54:56 26 4
gpt4 key购买 nike

我有一个相当简单的问题,但让我困惑了 2 天。我需要绘制 2 个以上的文件。每个文件将需要在总共 25 个图上绘制,但必须在同一组轴上绘制。 (即,如果有 2 个文件,我需要 25 个图,每个图有 2 条线)。

我有这个生成 50 个图的 sudo 代码(每个图一行)...这是错误的

with open(bamlist, 'r') as bamlist:
for bam in bamlist: #Opens the 2 files
'Generate data Here'
dataframe = []
for line in data:
line = line.split("\t")
dataframe.append(line[0:4:1])
df = pd.DataFrame(dataframe, columns=['Chromosome', 'Position', 'N', 'BaseCount'])

grouped_df = df.groupby('Chromosome') #groups dataframe into the required 25plots
for df in grouped_df:
density_data = 'Get density data from df'
f, ax = plt.subplots()
sns.kdeplot(density_data, ax=ax, linewidth=1)
pp.savefig()
pp.close()

有没有办法在第二次进入 for 循环时恢复到初始轴集,这样我将在每个绘图中得到 2 条线和 25 个绘图(而不是 50 个绘图)?

最佳答案

您的问题源于您使用:

f, ax = plt.subplots()

这意味着您每次点击该行(在您的情况下为 50 次)时都会生成一个新的子图。您需要生成 25 个子图并在以后引用它们。你可以这样做:

axes = []
for i in range(25):
f,ax = plt.subplots()
axes.append(ax)

然后在你的循环中:

for df_index in range(len(grouped_df)):
df = grouped_df[df_index]
density_data = 'Get density data from df'
sns.kdeplot(density_data, ax=axes[df_index], linewidth=1)

您还可以检查轴是否不存在(如果它延伸到超过 25 个子图或其他东西),如果不存在,则创建它。

关于python - Matplotlib。在 'for loops' 中绘制到同一轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32630949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com