私は、最大よりも小さいすべてのバーが淡い色であり、最大のバーがより鮮やかな色である棒グラフを作成しようとしています。良い例は、darkhorse analyticの 円グラフgif であり、円グラフを分解して、より明確なバープロットで終了します。どんな助けでも感謝します、ありがとう!
色のリストを渡すだけです。何かのようなもの
values = np.array([2,5,3,6,4,7,1])
idx = np.array(list('abcdefg'))
clrs = ['grey' if (x < max(values)) else 'red' for x in values ]
sb.barplot(x=idx, y=values, palette=clrs) # color=clrs)
(コメントで指摘されているように、それ以降のバージョンのSeabornは「色」ではなく「パレット」を使用します)
[バープロットの場合]データフレームからデータを取得する場合、次のことができます。
labels = np.array(df.Name)
values = np.array(df.Score)
clrs = ['grey' if (x < max(values)) else 'green' for x in values ]
#Configure the size
plt.figure(figsize=(10,5))
#barplot
sns.barplot(x=labels, y=values, palette=clrs) # color=clrs)
#Rotate x-labels
plt.xticks(rotation=40)
他の答えは色を定義しましたbeforeプロット。プロットに使用していた軸のパッチであるバー自体を変更することで、同様に後でを実行することもできます。 iayorkの例を再現するには:
_import seaborn
import numpy
values = numpy.array([2,5,3,6,4,7,1])
idx = numpy.array(list('abcdefg'))
ax = seaborn.barplot(x=idx, y=values) # or use ax=your_axis_object
for bar in ax.patches:
if bar.get_height() > 6:
bar.set_color('red')
else:
bar.set_color('grey')
_
たとえば、直接バーをアドレス指定することもできます。 _ax.patches[7]
_。 dir(ax.patches[7])
を使用すると、利用できるbarオブジェクトの他の属性を表示できます。