Python SNS条形图颜色强度错误

Python SNS条形图颜色强度错误,python,seaborn,Python,Seaborn,我正在使用SNS绘制以下类型的条形图,使用以下代码。我使用了cubehelix\u调色板,因为我希望根据这些值来确定条形图的颜色强度。我期望值越高,紫色越深,值越低,颜色越浅。但我在这里得到的似乎很不一样。似乎负值越少,颜色越暗,而正值越大,则被忽略。我做错什么了吗 x = ["A","B","C","D"] y = [-0.086552691,0.498737914,-0.090153413,-0.075941404] sns.axes_style('white') sns.set_styl

我正在使用SNS绘制以下类型的条形图,使用以下代码。我使用了
cubehelix\u调色板
,因为我希望根据这些值来确定条形图的颜色强度。我期望值越高,紫色越深,值越低,颜色越浅。但我在这里得到的似乎很不一样。似乎负值越少,颜色越暗,而正值越大,则被忽略。我做错什么了吗

x = ["A","B","C","D"]
y = [-0.086552691,0.498737914,-0.090153413,-0.075941404]

sns.axes_style('white')
sns.set_style('white')
pal=sns.cubehelix_palette(5)
ax = sns.barplot(x, y,palette=pal)

for n, (label, _y) in enumerate(zip(x, y)):
    ax.annotate(
        s='{:.3f}'.format(_y),
        xy=(n, _y),
        ha='center',va='center',
        xytext=(0,10*(1 if _y > 0 else -1)),
        textcoords='offset points',
        size = 8,
        weight='bold'
    )
    ax.annotate(
        s=label,
        xy=(n, 0),
        ha='left',va='center',
        xytext=(0,50*(-1 if _y > 0 else 1)),
        textcoords='offset points',
        rotation=90,
        size = 10,
        weight='bold'
    )  
# axes formatting
#ax.set_yticks([])
ax.set_xticks([])
sns.despine(ax=ax, bottom=True, left=True)
已编辑 根据@ImportanceOfBeingErnest的建议,我也尝试了以下代码。然而,负方向强度是错误的。同样令人不安的传说也随处可见。

说明您的
调色板
参数将颜色映射到
色调
参数的不同级别上,但您没有提供

因此,我认为您需要在
条形图
中设置
色调
参数,以便将颜色专门映射到
y

除了用以下内容替换ax=sns.barplot(x,y,palette=pal)之外,其他所有内容均未触及:

ax = sns.barplot(x, y, hue=y, palette=pal, dodge=False)

# Remove the legend
ax.legend_.remove()
您可以得到这样一个图,其中
y
越高,颜色越深:


@ImportanceOfBeingErnest我不同意这是100%重复,因为此图表中负方向条的强度似乎有问题。由于没有针对这种特定类型的问题提出任何问题,我希望这对其他人有所帮助。你是说链接问题的解决方案不能解决你的问题吗?似乎不能。我没有尝试,因为我的箱子使用了多向杆,我需要不同的杆标签。事实上,我需要更多的自定义的情节比链接的问题。什么?要么是,要么不是。我刚刚测试了一下,效果很好。是的,它确实有效,但有一些小问题。你能检查一下编辑过的问题吗?。无论如何,谢谢你的建议。谢谢你的快速回答。还有一件事,到底有没有隐藏这个传说?对我来说没有必要。我似乎在文档中找不到它。@Isurairmal没问题,添加
ax.legend\uu.remove()
,它应该会处理好它(请参阅编辑的文章)
ax = sns.barplot(x, y, hue=y, palette=pal, dodge=False)

# Remove the legend
ax.legend_.remove()