我正在使用seaborn绘制分布图 . 我想在不同颜色的同一图上绘制多个分布:
以下是我开始分发图的方法:
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
iris = pd.DataFrame(data= np.c_[iris['data'], iris['target']],columns= iris['feature_names'] + ['target'])
sns.distplot(iris[['sepal length (cm)']], hist=False, rug=True);
'target'列包含3个值:0,1,2 .
我想看一个萼片长度的分布图,其中target == 0,target == 1,target == 2,总共3个图 .
有谁知道我是怎么做到的?
谢谢 .
2 回答
重要的是按
target
为0
,1
或2
的值对数据帧进行排序 .输出如下:
如果您不知道
target
可能有多少个值,请在target
列中找到唯一值,然后对数据帧进行切片并相应地添加到图中 .针对此类问题的一种更常见的方法是使用melt将数据重新转换为长格式,然后让map执行其余操作 .
您现在可以通过创建FacetGrid并使用map来进行绘图: