首页 > 解决方案 > 在 Seaborn 中绘制特定列值而不是每个列值

问题描述

我不知道如何过滤列然后在 Seaborn 上成功绘制它。

下面的代码完美地工作并绘制了一个所有唯一列值分开的折线图。

import geopandas as gpd
import matplotlib.pyplot as plt 
import pandas as pd 
import numpy as np
import seaborn as sns

sns.set(style='darkgrid')
data = wcsales1.loc[wcsales1.Sales_Year > 2016]
sales_year = data['Sales_Year']
ppa = data['Price_Per_Acre']
dates = data['LATEST_LAND_SALE_DATE']
juris = data['PLANNING_JURISDICTION']

sns.relplot(x = sales_year, y = ppa, ci=None, kind='line', hue=juris)
plt.show()

但是,我想绘制下面列出的变量“egs”中的值,它们是变量“juris”中许多唯一值中的两个

我尝试了下面的代码,但得到了一个值错误,也包括在下面。

import geopandas as gpd
import matplotlib.pyplot as plt 
import pandas as pd 
import numpy as np
import seaborn as sns

sns.set(style='darkgrid')
data = wcsales1.loc[wcsales1.Sales_Year > 2016]
data = data.reset_index()
sales_year = data['Sales_Year']
ppa = data['Price_Per_Acre']
dates = data['LATEST_LAND_SALE_DATE']
juris = data['PLANNING_JURISDICTION']
egs = ['HS', 'FV']
south = data.loc[data.PLANNING_JURISDICTION.isin(egs)]
print(type(south))

sns.relplot(x = sales_year, y = ppa, ci=None, kind='line', hue=south)
plt.show()

下面的错误

Shape of passed values is (19, 3), indices imply (1685, 3)

谢谢你的帮助!

标签: pythonpandasmatplotlibfilteringseaborn

解决方案


sns你应该传递数据选项并作为数据x,y, hue中的列:

sns.relplot(x='Sales_Year', y='Price_Per_Acre',
            hue='PLANNING_JURISDICTION',
            data=data.loc[data.PLANNING_JURISDICTION.isin(egs)],
            kind='line', ci=None
           )

           

推荐阅读