gpt4 book ai didi

python - 这是 seaborn.lineplot hue 参数中的错误吗?

转载 作者:行者123 更新时间:2023-12-04 15:27:17 26 4
gpt4 key购买 nike

使用此代码片段,我期待一个每个色调一条线的线图,它具有这些不同的值:[1, 5, 10, 20, 40]。

import math
import pandas as pd
import seaborn as sns

sns.set(style="whitegrid")

TANH_SCALING = [1, 5, 10, 20, 40]
X_VALUES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
COLUMNS = ['x', 'y', 'hue group']

tanh_df = pd.DataFrame(columns=COLUMNS)

for sc in TANH_SCALING:
data = {
COLUMNS[0]: X_VALUES,
COLUMNS[1]: [math.tanh(x/sc) for x in X_VALUES],
COLUMNS[2]: len(X_VALUES)*[sc]}
tanh_df = tanh_df.append(
pd.DataFrame(data=data, columns=COLUMNS),
ignore_index=True
)

sns.lineplot(x=COLUMNS[0], y=COLUMNS[1], hue=COLUMNS[2], data=tanh_df);

但是,我得到的是一个色调图例,其值为 [0、15、30、45] 和另外一行,如下所示:

enter image description here

这是一个错误还是我遗漏了一些明显的东西?

最佳答案

当色调可以转换为整数时,这是 seaborn 的一个已知错误。您可以为色调添加前缀,以便转换为整数失败:

for sc in TANH_SCALING:
data = {
COLUMNS[0]: X_VALUES,
COLUMNS[1]: [math.tanh(x/sc) for x in X_VALUES],
COLUMNS[2]: len(X_VALUES)*[f'A{sc}']} # changes here
tanh_df = tanh_df.append(
pd.DataFrame(data=data, columns=COLUMNS),
ignore_index=True
)

输出:

enter image description here

或者在您创建数据之后:

# data creation
for sc in TANH_SCALING:
data = {
COLUMNS[0]: X_VALUES,
COLUMNS[1]: [math.tanh(x/sc) for x in X_VALUES],
COLUMNS[2]: len(X_VALUES)*[f'A{sc}']}
tanh_df = tanh_df.append(
pd.DataFrame(data=data, columns=COLUMNS),
ignore_index=True
)


# hue manipulation
sns.lineplot(x=COLUMNS[0], y=COLUMNS[1],
hue='A_' + tanh_df[COLUMNS[2]].astype(str), # change hue here
data=tanh_df);

关于python - 这是 seaborn.lineplot hue 参数中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62004561/

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