displot 的图例和规范化
Legend and normalization of displot
我正在尝试绘制显示多条曲线的密度图。我正在使用 seaborn 模块中的 displot,而不是 distplot,如下所示,因为我收到警告(在 Pycharm 中)后者将在未来被删除。不过,我找不到如何更改此图中的标签。现在它们只是列为“0”和“1”。另外,我想对两条曲线进行归一化,以便更好地比较它们。 common_norm=True 好像不行。有谁知道我可以使用什么参数?有一个叫做“传奇”,但它是一个布尔值。我查看了 有关 distplot 图例的内容,但它对我不起作用。
一个简短的工作示例:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
mylist = [np.random.normal(loc=0.0, scale=1.0, size=None) for i in range(50)]
yourlist = [np.random.normal(loc=1.0, scale=3, size=None) for j in range(50)]
sns.displot([mylist, yourlist], kind="kde", common_norm=True, color=["blue", "red"], linewidth=1)
plt.show()
这是一个修订版,应该会给出你期待的情节
sns.displot(
{"a": mylist, "b": yourlist}, # Use a dict to assign labels to each curve
kind="kde",
common_norm=False, # Normalize each distribution independently
palette=["blue", "red"], # Use palette for multiple colors
linewidth=1
)
我认为唯一需要更多解释的变化是 common_norm
。密度由曲线下的面积归一化(它应该等于 1)。如果common_norm=True
,所有曲线下的面积之和等于1;如果 common_norm_False
,则每条曲线下的面积等于 1。我认为您期望通过最大值完成归一化,但这并不能真正解释。 common_norm
参数在这里没有明显的效果,因为每个组中的观测值相同,所以它会改变 y 轴标签,但不会改变曲线的相对比例。
我正在尝试绘制显示多条曲线的密度图。我正在使用 seaborn 模块中的 displot,而不是 distplot,如下所示,因为我收到警告(在 Pycharm 中)后者将在未来被删除。不过,我找不到如何更改此图中的标签。现在它们只是列为“0”和“1”。另外,我想对两条曲线进行归一化,以便更好地比较它们。 common_norm=True 好像不行。有谁知道我可以使用什么参数?有一个叫做“传奇”,但它是一个布尔值。我查看了
一个简短的工作示例:
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
mylist = [np.random.normal(loc=0.0, scale=1.0, size=None) for i in range(50)]
yourlist = [np.random.normal(loc=1.0, scale=3, size=None) for j in range(50)]
sns.displot([mylist, yourlist], kind="kde", common_norm=True, color=["blue", "red"], linewidth=1)
plt.show()
这是一个修订版,应该会给出你期待的情节
sns.displot(
{"a": mylist, "b": yourlist}, # Use a dict to assign labels to each curve
kind="kde",
common_norm=False, # Normalize each distribution independently
palette=["blue", "red"], # Use palette for multiple colors
linewidth=1
)
我认为唯一需要更多解释的变化是 common_norm
。密度由曲线下的面积归一化(它应该等于 1)。如果common_norm=True
,所有曲线下的面积之和等于1;如果 common_norm_False
,则每条曲线下的面积等于 1。我认为您期望通过最大值完成归一化,但这并不能真正解释。 common_norm
参数在这里没有明显的效果,因为每个组中的观测值相同,所以它会改变 y 轴标签,但不会改变曲线的相对比例。