当使用seaborn创建直方图时,我希望动态地将计数较低的条形图放在前面。下面是一个最小的例子,现在蓝条总是在前面,无论它的计数。例如,在第二个垃圾箱中,我希望橙子条在前面。基本上,我正在寻找类似于multiple="stack"
的东西,但是没有添加列。这可能吗?
import numpy as np
import pandas as pd
import seaborn as sns
sns.set()
df_A = pd.DataFrame(np.random.randint(0, 10, 100), columns=["value"])
df_A["label"] = "A"
df_B = pd.DataFrame(np.random.randint(0, 10, 100), columns=["value"])
df_B["label"] = "B"
df = pd.concat([df_A, df_B])
sns.histplot(df, x="value", bins=np.arange(0, 10, 1), hue="label")
1条答案
按热度按时间k97glaaz1#
您可以遍历生成的条形容器并比较相应条形的高度。然后,可以使用高度的顺序来设置它们的z顺序。或者,您可以设置
alpha=1
使它们不透明。下面是一个具有更多色调值的示例。
np.argsort
需要被调用两次才能得到相反的顺序。