2014-10-30 2 views
1

Я попытался ввести список в качестве параметра маркеров, но я постоянно получаю сообщение об ошибке, что говорится:Как мне маркировать маркеры в Matplotlib?

ValueError: Unrecognized marker style ['', 'o', '', '', '', '', 'o', '', '', '', '', '', '', '', 'o', '', 'o', '', '', '', '', '', '', '', '', '', 'o', '', '', 'o', '', '', 'o', '', '', '', 'o', '', '', '', 'o', '', '', '', '', '', 'o', '', 'o', '', 'o', '', '', '', '', 'o', 'o', '', 'o', '', '', '', 'o', '', '', '', '', '', '', '', '', '', '', '', 'o', '', 'o', 'o', 'o', '', 'o', '', '', '', '', '', '', '', '', '', '', '', '', '', 'o', '', '', '', '', 'o', '', '', '', '', '', '', '', 'o', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'o', '', '', '', 'o', '', '', 'o', 'o', 'o', '', 'o', 'o', 'o', '', 'o', '', '', '', 'o', '', '', '', 'o', '', 'o', '', '', '', '', '', '', '', '', 'o', 'o', '', '', '', '', '', 'o', '', '', '', '', '', '', '', '', '', '', '', 'o', '', '', '', '', '', '', '', '', '', '', 'o', '', '', '', '', 'o', '', '', '', '', '', 'o', '', '', '', '', '', '', '', '', '', '', 'o', '', '', '', '', '', '', '', '', '', 'o', '', '', '', 'o', '', '', '', '', '', '', '', '', '*']

вот код:

pure_accuracy_rate,report,y_pred,test_labels,test_data,neigh = nearest_neighbors(raw_data,nlabels) 
fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 


plot_vars = ["SIO2","FEOT","MGO"] 


x1,y1,z1 = [test_data[:,chemicals.index(x)] for x in plot_vars] 
cmap = {1:"red",2:"green",3:"blue",4:"orange"} 
hit_shapes = {True:"*",False:"o"} 

hit_mat = [y_pred[i] == test_labels[i] for i in range(len(test_labels))] 
hit_shapes_mat = [hit_shapes[i] for i in hit_mat] 
rock_colors = [cmap[x] for x in test_labels] 


ax.scatter(x1, y1, zs=z1, c=rock_colors, marker=hit_shapes_mat) 

ax.set_xlabel(plot_vars[0]) 
ax.set_ylabel(plot_vars[1]) 
ax.set_zlabel(plot_vars[2]) 

Есть ли способ, чтобы предоставить список маркеров в Matplotlib?

+0

Короткий ответ: Нет, согласно [документации] (http://matplotlib.org/api/pyplot_api.html # matplotlib.pyplot.scatter). Scatter не принимает список как вход для стиля маркера. Тем не менее, вы можете анализировать свои данные в группы и рисовать с помощью одного подходящего стиля маркера, а не анализировать стиль маркера (который, похоже, вы пытаетесь сделать). Это будет чище. – Ajean

ответ

0

, по-видимому, не представляется возможным, и вы должны вручную разбить набор данных на различные группы маркеров

Смежные вопросы