Python 基于第三个变量的带色条的2个变量散点图

Python 基于第三个变量的带色条的2个变量散点图,python,matplotlib,seaborn,scatter-plot,colorbar,Python,Matplotlib,Seaborn,Scatter Plot,Colorbar,我试图用变量x相对于另一个y进行绘图,并根据另一个变量z的值添加颜色贴图 所以情节应该和这个相似 我的尝试 import numpy as np import pandas as pd import seaborn as sns import random import matplotlib.pyplot as plt import matplotlib.cm as cm x=np.random.randint(0,20,30) y=np.random.randint(-5,5,30) z=

我试图用变量x相对于另一个y进行绘图,并根据另一个变量z的值添加颜色贴图

所以情节应该和这个相似

我的尝试

import numpy as np
import pandas as pd
import seaborn as sns
import random
import matplotlib.pyplot as plt
import matplotlib.cm as cm

x=np.random.randint(0,20,30)
y=np.random.randint(-5,5,30)
z=np.random.randint(-2,10,30)
df=pd.DataFrame(data={'A':x,'B':y,'C':z})

points = plt.scatter(df['A'],df['B'],cmap="jet")
m = cm.ScalarMappable(cmap=cm.jet)
m.set_array(df['C'])
plt.colorbar(points)
sns.lmplot('A', 'B', data=df, hue='C', fit_reg=False)

TypeError: You must first set_array for mappable
我正在混合matplotlib和seaborn,因为在seaborn中,我不能使用颜色贴图“jet” 但是任何获得相同图形的替代方法都是受欢迎的

如何(在scatter命令中使用c=df.c):

如何(在scatter命令中使用c=df.c):

points = plt.scatter(df.A, df.B, c=df.C,cmap="jet", lw=0)
plt.colorbar(points)