如何在绘制数据之前删除某些值

时间:2019-06-21 12:57:37

标签: python pandas matplotlib

我是第一次使用python。我有一个csv文件,其中包含几列数据:位置,高度,密度,日等...我正在绘制高度(i_h100)v密度(i_cd),并使用以下代码成功将高度限制为低于50的值。我现在想将y轴上的值限制在某个“天”范围内,例如(85-260)。我不知道该怎么做。

import pandas 
import matplotlib.pyplot as plt

data=pandas.read_csv('data.csv')
data.plot(kind='scatter',x='i_h100',y='i_cd')
plt.xlim(right=50)

1 个答案:

答案 0 :(得分:1)

使用.loc对进入图表的数据进行子集化。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Make some dummy data
np.random.seed(42)
df = pd.DataFrame({'a':np.random.randint(0,365,20),
                   'b':np.random.rand(20),
                   'c':np.random.rand(20)})

# all data: plot of 'b' vs. 'c'
df.plot(kind='scatter', x='b', y='c')
plt.show()

# use .loc to subset data displayed based on value in 'a'
# can also use .loc to restrict values of 'b' displayed rather than plt.xlim
df.loc[df['a'].between(85,260) & (df['b'] < 0.5)].plot(kind='scatter', x='b', y='c')
plt.show()