python 中按列分组的散点图

Scatterplot groupby columns in python

我正在尝试绘制两种不同类型的分类变量的散点图,每种变量具有三个不同的水平。现在我正在 python:

中使用 seaborn 库
sns.pairplot(x_vars = ['UTM_x'], y_vars = ['UTM_y'], data = df, hue = "Mobility_Provider", height = 5)
sns.pairplot(x_vars = ['UTM_x'], y_vars = ['UTM_y'], data = df, hue = "zone_number", height = 5)

这给了我两个单独的散点图,一个按 Mobility_Provider 分组,一个按 zone_number 分组。但是,我想知道是否可以将这两个图组合在一起,例如Mobility_Provider 的不同级别用不同的颜色表示,而 zone_number 的不同级别在图中的不同 shapes/markers 中表示。 非常感谢!

样例图为: Plot1 Plot2

df 的每一行都有 x 和 y 值,以及两个分类变量("Mobility_Provider" 和 "zone_number")

这可以使用seaborn的散点图轻松完成,只需使用
hue = "Mobility_Provider",style="zone_number"
像这样

import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd

df = pd.DataFrame({'x':[1,2,3,4],'y':[1,2,3,4],'Mobility_Provider':[0,0,1,1],\
                   'zone_number':[0,1,0,1]})

sns.scatterplot(x="x", y="y",s=100,hue='Mobility_Provider',style='zone_number', data=df)
plt.show()