【问题标题】:Unrecognized Marker Style when using a function for markers使用标记功能时无法识别的标记样式
【发布时间】:2016-02-01 23:35:41
【问题描述】:

我试图弄清楚为什么我的这段代码不起作用。我正在尝试将“标记”设置为变量,以便它可以根据特定列的读取内容使用不同的标记。情节中的其他一切都很好,但是当我添加这部分时:

mark = ["s" if t == "M" else "o" for t in z]

plt.scatter(x2[yesGEM],y1[yesGEM],c="green",label='Observed (GemN)', marker=mark)

我明白了:

ValueError: Unrecognized marker style ['o', 's', 'o', 'o', 'o', 's', 'o', 'o',......'o']

知道这是为什么吗?

【问题讨论】:

标签: python matplotlib


【解决方案1】:

我认为当您调用 scatter(请参阅 the docs)时,您不能将 marker 设置为可迭代对象,因此您必须将数据分成两组并分别分散:例如(假设x2y1对应z中的值):

data_s = []
data_o = []
for i,t in enumerate(z):
    if t == 'M':
         data_s.append(x2[i], y1[i])
    else:
         data_o.append(x2[i], y1[i])

plt.scatter(*zip(*data_s), marker='s', c='g')
plt.scatter(*zip(*data_o), marker='o', c='g')

【讨论】:

    猜你喜欢
    • 2015-10-26
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2015-11-15
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多