如何在 matplotlib 的一个图中绘制 Excel 文件中的多个数据集?

问题描述 投票:0回答:1

我想学习如何在一张图中绘制从 Excel 中获取的多个数据集。下面的代码(由另一位用户友好提供)在单独的图中绘制了数据集。效果很好。现在我需要出于其他目的合并数据以在一个图中显示。

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

import openpyxl as xl

df = pd.read_excel("C:\\temp\\test.xlsx", sheet_name="Sheet2", skiprows=5)

print(df.columns)

 

def grouped(iterable, n):

    return zip(*[iter(iterable)]*n)

 

pair_count = len(list(grouped(df.columns,2)))

pair = 1

plt.figure(figsize=(10,5))

for x_col,y_col in grouped(df.columns,2):

  x=np.array(df[x_col].values)

  y=np.array(df[y_col].values)

  plt.subplot(1,pair_count,pair)

  plt.xlim(0.1,15)

  plt.ylim(300,800)

  plt.plot(x,y)

  plt.title(f"{pair}. th plot")

  plt.xlabel(f"{x_col}")

  plt.ylabel(f"{y_col}")

  pair += 1

plt.show()

它应该看起来像这样: enter image description here 我非常感谢您的帮助!

尝试添加Fig, ax = plt.subplots(),但它创建了10个单独的图表。

python excel matplotlib for-loop multiple-columns
1个回答
0
投票

plot 方法足以添加新行:

def col_pairs(columns):
    return [(columns[i], columns[j]) for i, j in zip(range(0, len(columns), 2), range(1, len(columns), 2))]

for col_x, col_y in col_pairs(df.columns):
    plt.plot(df[col_x], df[col_y], label=f"Line {col_x} vs {col_y}")

plt.legend()
plt.show()

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.