gpt4 book ai didi

python - 色调和共享 x 轴不起作用 Seaborn 小平面网格

转载 作者:行者123 更新时间:2023-12-04 07:50:26 25 4
gpt4 key购买 nike

我的目标是绘制一个堆叠图,显示来自 Pandas df 的归一化值。在下面使用 Item 中的每个唯一值有它自己的行。然后我的目标是绘制一个堆叠图,其中包含来自 Label 的归一化值。 , 与 Num沿 x 轴。
但是,色调似乎为每个人传递了一组不同的颜色 Item .它们不一致,例如,AUp是蓝色的,而 ARight是绿色的。
我也希望分享 Num 的 x 轴每个 Item 都是一致的.这些值未与相应的 x 轴对齐。

import pandas as pd
import numpy as np

df = pd.DataFrame({
'Num' : [1,2,1,2,3,2,1,3,2,2,1,2,3,3,1,3],
'Label' : ['A','B','C','B','B','C','C','B','B','A','C','A','B','A','C','A'],
'Item' : ['Up','Left','Up','Left','Down','Right','Up','Down','Right','Down','Right','Up','Up','Right','Down','Left'],
})

g = sns.FacetGrid(df,
row = 'Item',
row_order = ['Up','Right','Down','Left'],
aspect = 2,
height = 4,
sharex = True,
legend_out = True
)

g.map_dataframe(sns.histplot, x = 'Num', hue = 'Label', multiple = 'fill', shrink = 0.8, binwidth = 1)
g.add_legend()

最佳答案

使用 FacetGrid直接可能会很棘手;它基本上是在轴上执行 groupb-by 和 for 循环,并且它不会跟踪任何特定于功能的状态,以确保“每个色调级别应该使用什么顺序”等问题的答案是每个方面都一样。因此,您需要以某种方式提供该信息(即 hue_order 或传递调色板字典)。其实documentation里面有警告为此。
但一般不用FacetGrid直接地;您可以使用图形级函数之一,它会为您完成所有簿记,以确保信息在各个方面对齐。在这里您将使用 displot :

sns.displot(
data=df, x="Num", hue="Label",
row='Item', row_order=['Up','Right','Down','Left'],
multiple="fill", shrink=.8, discrete=True,
aspect=4, height=2,
)
enter image description here
请注意,我在这里对您的代码进行了另一处更改,即使用 discrete=True而不是 binwidth=1 ,这就是我认为你想要的。

关于python - 色调和共享 x 轴不起作用 Seaborn 小平面网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67015788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com