0

我对 Python 还是很陌生,所以这可能是一个简单的问题,但我还没有找到满意的答案。我有来自五个不同来源的数据,在将数据从 Excel 文件加载到单个 DataFrame 后,我试图在一个脚本中绘制这些数据。就像现在一样,我只知道如何一次绘制一个源或在一个图形中绘制所有 5 个源(或 1 到 5 之间的某个位置)。这是我的代码,整个脚本。可能并非全部都是必要的,但我已将其全部包括在内以防万一。

import numpy as np
import pandas as pd
from pandas import *
import matplotlib
import matplotlib.pyplot as plot
import datetime as datetime
from datetime import *

#Import data from Excel File
data2007 = pd.ExcelFile('f:\Python\Learning 19-4-2013\Data 2007.xls')
table2007 = data2007.parse('Sheet1', skiprows=[0,1,2,3,4,5], index=None)

#Plot data for first meter
ax = plot.figure(figsize=(7,4), dpi=100).add_subplot(111)
FirstMeter = table2007_3.columns[0]
Meter1 = table2007_3[FirstMeter]
Meter1.plot(ax=ax, style='-v')

#Plot data for second meter
SecondMeter = table2007_3.columns[1]
Meter2 = table2007_3[SecondMeter]
Meter2.plot(ax=ax, style='-v')

#Plot data for third meter
ThirdMeter = table2007_3.columns[2]
Meter3 = table2007_3[ThirdMeter]
Meter3.plot(ax=ax, style='v-')

#Plot data for fourth meter
FourthMeter = table2007_3.columns[3]
Meter4 = table2007_3[FourthMeter]
Meter4.plot(ax=ax, style='v-')

#Plot data for fifth meter
FifthMeter = table2007_3.columns[4]
Meter5 = table2007_3[FifthMeter]
Meter5.plot(ax=ax, style='v-')

#Command to show plots
plot.show()
4

1 回答 1

1

我看到您正在Meter1从 DataFrame 的每一列中制作一个新系列(例如,),然后将它们分别绘制在相同的轴上。相反,您可以绘制 DataFrame 本身。Pandas 假设您想在同一图上将每一列绘制为单独的线,这正是您在这里所做的。

table_2007.plot(style='v-')

或者table_2007[0:4].plot(style='v-')如果还有其他列需要省略。

默认情况下,它还会生成一个图例,您可以使用关键字参数来隐藏它legend=False

如果您想要单独的数字,正如您的问题标题所暗示的那样,该subplots=True论点可能会完成工作。

于 2013-04-22T17:30:22.993 回答