0
我想创建基于不同分类列的点着色数据集的散点图。 Seaborn行之有效这里一个情节:Python绘制不同的数据帧列(使用Seaborn?)
fg = sns.FacetGrid(data=plot_data, hue='col_1')
fg.map(plt.scatter, 'x_data', 'y_data', **kws).add_legend()
plt.show()
我再要显示的数据相同,但色调=“COL_2”和色调=“col_3”。如果我只拍3张图,效果很好,但我真的希望找到一种方法让它们在一个图中显示为子图。不幸的是,我还没有找到任何方法来改变从一个情节到另一个情节的色调。我知道有绘图API允许使用axis关键字,因此可以将它弹出到matplotlib图中,但是我没有找到同时允许您设置'ax ='和'hue ='的API。有任何想法吗? 在此先感谢!
编辑: 下面是一些示例代码来说明这个想法
xx = np.random.rand(10,2)
cat1 = np.array(['cat','dog','dog','dog','cat','hamster','cat','cat','hamster','dog'])
cat2 = np.array(['blond','brown','brown','black','black','blond','blond','blond','brown','blond'])
d = {'x':xx[:,0], 'y':xx[:,1], 'pet':cat1, 'hair':cat2}
df = pd.DataFrame(data=d)
sns.set(style='ticks')
fg = sns.FacetGrid(data=df, hue='pet', size=5)
fg.map(plt.scatter, 'x', 'y').add_legend()
fg = sns.FacetGrid(data=df, hue='hair', size=5)
fg.map(plt.scatter, 'x', 'y').add_legend()
plt.show()
这绘制我想要的东西,但在两个窗口。颜色方案通过“宠物”分组在第一个图中设置,在第二个图中通过“头发”设置。有没有办法在一个情节上做到这一点?
如果此解决方案是不是你是什么之后,你应该提供问题的样本数据集,并解释清楚了每个情节应该显示。 – ImportanceOfBeingErnest
上面的图是我之后的,除了指定颜色的列是分类变量。所以,例如,“col1”可能是 'favorite_movies = ['batman','lego movie','alien',...]' 这就是使用Seaborn看起来像一个不错的选择的地方,我遇到了一些问题,试图改变用于设置从情节到情节的色调的数据。 – user7828298
我建议您向我们展示产生您想要的数据框的代码(例如,不清楚所有列的值是否相同)。然后,我们可以找到解决方案 – ImportanceOfBeingErnest