Python,在图表上显示特定数据行
Python, showing a specific data row on a graph
因此,我制作了一个图表,将 .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()
产生:
那么有没有办法只显示第 1 (182-14)、3 (15-14) 和 5 (183-14) 行?或者也许只是为了绘制那些特定的行?我检查了其他问题,none 与我一样使用 .csv 文件有关。感谢您的帮助。
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')
拆开最后一行:cw[cw.Chick==1]
是 cw
中 Chick==1 的所有行; pandas 数据帧有一个 plot 方法(我认为这是 matplotlib,所以会很熟悉)。
您还可以从数据框中进行复杂的选择,有一些很好的相关 pandas 问题。
编辑添加:use a list of values to select rows from a pandas dataframe is probably the most literal approach to your question; Selecting rows from a Pandas dataframe with a compound (hierarchical) index 非常适合基于多列进行选择(在多因素实验中一直出现)。
因此,我制作了一个图表,将 .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()
产生:
那么有没有办法只显示第 1 (182-14)、3 (15-14) 和 5 (183-14) 行?或者也许只是为了绘制那些特定的行?我检查了其他问题,none 与我一样使用 .csv 文件有关。感谢您的帮助。
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')
拆开最后一行:cw[cw.Chick==1]
是 cw
中 Chick==1 的所有行; pandas 数据帧有一个 plot 方法(我认为这是 matplotlib,所以会很熟悉)。
您还可以从数据框中进行复杂的选择,有一些很好的相关 pandas 问题。
编辑添加:use a list of values to select rows from a pandas dataframe is probably the most literal approach to your question; Selecting rows from a Pandas dataframe with a compound (hierarchical) index 非常适合基于多列进行选择(在多因素实验中一直出现)。