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

gis*_*s20 2 python matplotlib scatter-plot colorbar seaborn

我试图用变量 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
Run Code Online (Sandbox Code Playgroud)

我正在混合 matplotlib 和 seaborn,就像在 seaborn 中一样我不能使用颜色图“jet”但是欢迎使用任何替代方法来获得相同的图形

scr*_*ver 9

这个怎么样(在 scatter 命令中使用 c=df.C ):

points = plt.scatter(df.A, df.B, c=df.C,cmap="jet", lw=0)
plt.colorbar(points)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明