通过多个条件绘制熊猫数据框值

时间:2019-09-16 02:32:56

标签: python pandas matplotlib seaborn

我有以下数据框:

data = [
    ['unit1','A',3000,2.4],['unit1','A',4000,2.5],['unit1','A',5000,2.7],
    ['unit2','A',3000,2.1],['unit2','A',4000,2.3],['unit2','A',5000,2.6],
    ['unit3','A',3000,2.5],['unit3','A',4000,2.6],['unit3','A',5000,2.8]]
df = pd.DataFrame(data, columns=['unitname','channel','frequency','power'])

我想绘制功率随频率变化的图,每个单元都有自己的系列,并带有与单元名称相对应的图例。将所有系列放在同一图上。

2 个答案:

答案 0 :(得分:3)

使用seaborn使您的绘图看起来更好:

  • 使用问题中提供的示例数据框。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(8, 8))
sns.lineplot(x='power', y='frequency', data=df, hue='unitname')
plt.show()

enter image description here

答案 1 :(得分:0)

IICU,这就是您所需要的

df[df['unitname']=='unit1'].plot(x="power", y="frequency",title='unit1',colormap='Reds_r')
df[df['unitname']=='unit2'].plot(x="power", y="frequency",title='unit2', colormap='Blues_r')
df[df['unitname']=='unit3'].plot(x="power", y="frequency",title='unit3', colormap='Greens_r')

enter image description here