根据不同月份表示鱼位置的 Dataframe :
X Y Month
2040 2760 1
2041 2580 1
2045 2762 1
2047 2763 2
2053 2774 3
通过这段海上文字
fig,ax=plt.subplots()
kde = sns.kdeplot(data=HR25, x='X', y='Y', shade=True, ax=ax, levels=levels_, cmap="Reds",
alpha=0.9)
ax.set_xlim([x_min-10, x_max+10])
ax.set_ylim([y_min-10, y_max+10])
ax.scatter(X, Y, c=months, edgecolors='black', picker=True, s=17)
ax.set_aspect('equal')
plt.show()
我已经能够创建这个数字,它代表了鱼在一年中按月份的位置(背景中的红色区域是用内核海运方法计算的动物的家范围):
实际上,我想改变与月份相关的点的颜色,所以我创建了一个不同的调色板,为每个月份指定颜色:
palette = {1:"tab:blue", 2:"tab:orange", 3:"tab:purple", 4:"tab:green", 5:"tab:red", 6:"tab:pink", 7:"tab:brown", 8:"tab:yellow", 9:"tab:olive", 10:"tab:black", 11:"tab:cyan", 12:"tab:gray"}
但是,当我像这样将调色板添加到ax.scatter中时:
fig,ax=plt.subplots()
kde = sns.kdeplot(data=HR25, x='X', y='Y', shade=True, ax=ax, levels=levels_, cmap="Reds",
alpha=0.9)
ax.set_xlim([x_min-10, x_max+10])
ax.set_ylim([y_min-10, y_max+10])
ax.scatter(X, Y, c=months, edgecolors='black', picker=True, s=17, palette=palette)
ax.set_aspect('equal')
plt.show()
所有点消失!
1条答案
按热度按时间42fyovps1#
在本例中,当调用
ax.scatter
时,实际上并没有使用Seabornscatterplot
函数,而是使用了Matplotlibscatter
函数,该函数没有palette
或picker
关键字参数,而不是:尝试:
注意:
tab:yellow
和tab:black
不在Matplotlib的Tableau调色板中,因此您应该删除这些值的字符串中的tab:
。如果您确实想使用Matplotlib的
scatter
,您可以通过在rcParams中设置'axes.prop_cycle'
来设置颜色,例如: