2017-01-03 17 views
1

我对大熊猫情节使用以下代码。它需要一个文件,并绘制特定行的图(轨迹ID's:即'loc.27404')。熊猫情节 - 绘制文件中的特定行

但是,此代码手动指定我想绘制的线条。

我有另一个文件包含我想要绘制的所有行(有100个) - 我如何编写一个脚本,这将允许我输入此文件,以便这些特定行使用下面的绘图码。我似乎无法写出任何有意义的东西。

data = {} 
for line in File: 
    cols = line.strip().split('\t') 
    vals = map(float,cols[6:]) 
    data[cols[3]] = vals 

fig,ax = plt.subplots(4,figsize=[15,20]) 

l1= 'loc.27404' 
l2= 'loc.37387' 
l3 = 'loc.05134' 
l4 = 'loc.10034' 

pd.Series(data[l1],index=xticks).plot(ax=ax[0]) 
pd.Series(data[l2],index=xticks).plot(ax=ax[1]) 
pd.Series(data[l3],index=xticks).plot(ax=ax[2]) 
pd.Series(data[l4],index=xticks).plot(ax=ax[3]) 

回答

0

一个潜在的解决方案是将读取线和存储结果的100S在列表中,如:['loc.27404','loc.37387','loc.05134','loc.10034']中使用一个for循环:

for i,line_to_plot in enumerate(['loc.27404','loc.37387','loc.05134','loc.10034']): 
    pd.Series(data[line_to_plot],index=xticks).plot(ax=ax[i]) 
+0

感谢你为这个。有没有办法直接输入列表文件?我已经生成了我想要绘制的线条列表 - 列表格式为:['loc.00037'],['loc.00225'],['loc.00225'],['loc.00257'] – Altheman

+0

您是否尝试将''[['loc.00037'],['loc.00225'],['loc.00225'],['loc.00257']]'''转换为'''['在[['loc.00037'],['loc'中为x使用''[x [0]'''loc.00037','loc.00225','loc.00225','loc.00257' .00225'],['loc.00225'],['loc.00257']]'''? – Rafa