[英]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.