Python散点图:标记样式的条件?

lu_*_*yah 3 python matplotlib scatter-plot

我有一个数据集,我希望用matplotlib绘制为散点图,以及一个相同大小的矢量,用于对数据点进行分类和标记(离散地,例如从0到3).我想为不同的标签使用不同的标记(例如,'x'表示0,'o'表示1,依此类推).我怎样才能优雅地解决这个问题?我很确定我只是错过了一些东西,但是并没有真正找到它,而且我的天真方法到目前为止都失败了......

Dav*_*ker 8

如何迭代这样的所有标记:

import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(100)
y = np.random.rand(100)
category = np.random.random_integers(0, 3, 100)

markers = ['s', 'o', 'h', '+']
for k, m in enumerate(markers):
    i = (category == k)
    plt.scatter(x[i], y[i], marker=m)

plt.show()
Run Code Online (Sandbox Code Playgroud)