无法使用MATPLOTLIB从EXCEL PLOT多个数据

时间:2016-08-30 21:31:59

标签: python excel numpy matplotlib xlrd

我有一个包含1000行&的Excel文件。 300列。 我想绘制(第1列)vs(第2列到第288行);我的第一列是我的X轴,其余列是Y轴。 我的代码如下;我没有显示。 这样没有错误信息。

from openpyxl import load_workbook
import numpy as np
import matplotlib.pyplot as plt

wb = load_workbook('CombinedData1.xlsx')
sheet_1 = wb.get_sheet_by_name('CombinedData')

x = np.zeros(sheet_1.max_row)
y = np.zeros(sheet_1.max_row)
a = np.zeros(sheet_1.max_column)
b = np.zeros(sheet_1.max_column)

print (sheet_1.max_row)
print (sheet_1.max_column)

for i in range(0, sheet_1.max_row):
    for j in range(1, 7):
        x[i] = sheet_1.cell(row=i + 1, column=j).value
        y[j] = sheet_1.cell(row=i + 1, column=j).value
        # z[i] = sheet_1.cell(row=i + 1, column=3).value
        print x[i]
        # print y[i]
        plt.plot(x[i], y[i], 'bo-', label='Values')

plt.grid(True)
plt.xlim(0,100)
plt.ylim(0,10)
plt.show()

2 个答案:

答案 0 :(得分:0)

尝试类似下面的嵌套循环:

for j in range(1, 7):
      for i in range(0, sheet_1.max_row):
               x[i] = sheet_1.cell(row=i + 1, column=j).value
               y[i] = sheet_1.cell(row=i + 1, column=j).value
               #z[i] = sheet_1.cell(row=i + 1, column=3).value
                print x[i]
               #print y[i]
      plt.plot(x, y, label='Values %d' % j, hold=1)

hold-option将把7个单独的图组合成一个单独的图。此外,您应该考虑使用pandas包导入和处理工作表数据。

答案 1 :(得分:0)

我会考虑使用pandas

import pandas
df = pandas.read_excel('CombinedData1.xlsx', sheetname='CombinedData', header=None)
df.plot(x=0)

plt.plot(df[0], df[1])