所以,我用最简单的方法用seaborn制作了一个地块,分为5个不同的类别:
sns.set_style('whitegrid')
plt.figure(figsize=(35,20))
sns.set(font_scale = 3)
sns.stripplot(df.speed, df.routeID, hue=df.speed>50, jitter=0.2, alpha=0.5, size=10, edgecolor='black')
plt.xlabel("Speed", size=40)
plt.ylabel("route ID", size=40)
plt.title("Velocity stripplot", size=50)
现在,我要为每个类别设置不同的色相,例如,第一类的速度大于50 kmh,第二类的速度大于30 kmh,依此类推。这可能吗?我试图通过传递色相列表来做到这一点:
hue=([("ROUTE 30">50),("ROUTE 104">0)])
但它标记:SyntaxError: invalid syntax
问题是,我想一次做完所有的工作(因为最明显的答案是分别作图),该怎么做?
编辑:我遵循了建议的答案。使用相同的代码:
plt.figure(figsize=(20,7))
my_palette = ['b' if x > 82 else 'g' for x in df.speed.values]
sns.stripplot(df.speed, df.routeID, jitter=0.2, alpha=0.5, size=8, edgecolor='black', palette = my_palette)
但没有得到预期的结果:
我不明白这里出了什么问题。有什么想法吗?