繁体   English   中英

seaborn lmplot 中的标记

[英]Markers in seaborn lmplot

from cycler import cycler
markers = cycler(marker=['*', 'o'] * 100)

g = sns.lmplot(x='x', y='y', df, fit_reg=False, hue='z', lowess=True, scatter_kws={'alpha': 0.5}, legend=True, markers=markers)

在上面的代码中,我想循环标记。 但是,我收到此错误:

TypeError: unhashable type: 'Cycler'

如何解决这个问题?

尝试markers=['*', 'o']

lmplot()markers参数需要为每个级别的hue输入一个条目。 你可以测试这个:

N = 100
data = {"x":np.random.random(N),
        "y":np.random.random(N),
        "z":np.random.choice([0,1], size=N)}
df = pd.DataFrame(data)

markers = [1,2,3]

g = sns.lmplot(x='x', y='y', data=df, fit_reg=False, hue='z', lowess=True, 
               scatter_kws={'alpha': 0.5}, legend=True, markers=markers)

^ 这将引发错误:

ValueError:标记必须是色调变量的每个级别的单音或标记列表

如果这是导入(相当深奥的) cycler模块的唯一用例,则最好将其省略并简单地定义要绑定到z列的标记。

至于您发布的实际错误,请注意markers中的每个元素都是一个dict 有一个marker字段可以获取实际的marker字符。 你可以看到这个:

for m in markers:
    print(m['marker'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM