我有一个熊猫数据框,分为两个类别。
%pylab inline
import pandas as pd
import numpy as np
import seaborn as sns; sns.set();sns.set_style("whitegrid")
df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
df['category'] = df['A'].mod(2)
df['category_2'] = df['B'].mod(3)
df
以这种方式绘制时:
sns.lineplot(x='C', y='D', data=df, hue='category', size='category_2', style='category_2')
对于category
的所有0/1值,颜色都是恒定的。
但是,相反,我想为category
的两个值指定特定的颜色(范围),并让色相根据category_2
的数字大小为0/1生成此颜色范围。
看起来像是不错的第一次尝试:
sns.relplot(x="D", y="D", hue="category", size="category_2",
palette=["b", "r"], sizes=(10, 100),
col="category", data=df)
但是缺少的是:
col_wrap=1
来解决-甚至更好:直接使用row