Python,在图表上显示特定数据行

时间:2015-02-27 21:02:21

标签: python graph matplotlib

所以,我制作了一个图表,将.csv文件中的多行绘制到一个图表上。我想制作另一个仅包含特定行的图表,以便更好地分析它们。

我的数据是(只占总数的一部分):

Number  Base-BW  1-BW    2-BW   3-BW    4-End-BW
182-14  39.7    41.1    40.3    39.5    38.8
95-14   43.3    41      41.9    42.4    41.6
15-14   59.4    59.4    59.1    59.1    56.4
124-14  76.4    77.4    74.8    74.5    68.1
183-14  35      35.5    36.8    37.3    35.4

我目前的脚本是:

# import all needed modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats as st
from numpy import loadtxt
import os
%matplotlib inline
# Set some Pandas options
pd.set_option('display.notebook_repr_html', False)
pd.options.display.mpl_style = 'default'
SelectBreed = pd.read_csv('SelectBreeding(2-2-15).csv')
import matplotlib.pyplot as plt
import matplotlib.colors as cl
cl.Colormap('hsv')
plt.plot([0,1,2,3,4], (SelectBreed['Base-BW'],SelectBreed['1-BW'],SelectBreed['2-BW'],SelectBreed['3-BW'],SelectBreed['4-End-BW']))
plt.axis([0, 4, 0, 100])
plt.xlabel('Day')
plt.ylabel('Weight (g)')
plt.title('Body Weight')
plt.legend(SelectBreed['Number'], bbox_to_anchor=(1.1, 1.01))
plt.show()

哪个收益率: graph

那么有没有办法只显示第1行(182-14),第3(15-14)和第5行(183-14)?或者只是为了绘制那些特定的行?我已经检查了其他问题,没有一个像我一样使用.csv文件。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

Pandas库摇滚用于阅读.csv文件,然后分析它们。使用R中的样本数据集

import pandas as pd
cw = pd.read_csv('ChickWeight.csv')
cw.columns
  

Out [166]:Index([u'weight',u'Time',u'Chick',u'Diet'],dtype ='object')

cw[cw.Chick==1].plot('Time','weight')

enter image description here

挑选最后一行:cw[cw.Chick==1]cw的所有行,其中Chick == 1; pandas数据帧有一个绘图方法(我认为这是matplotlib,所以会很熟悉)。

你也可以从数据框中做出复杂的选择,有一些很好的相关熊猫问题。

编辑添加:use a list of values to select rows from a pandas dataframe可能是您问题的最直接的方法; Selecting rows from a Pandas dataframe with a compound (hierarchical) index非常适合基于多个列进行选择(在多因素实验中一直出现)。