我試着輸入列表作爲標記參數,但我不斷收到,指出錯誤:如何改變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?
簡短的回答:沒有,按[文檔](http://matplotlib.org/api/pyplot_api.html #matplotlib.pyplot.scatter)。 Scatter不會將列表作爲標記樣式的輸入。但是,您可以將數據本身解析爲組並用單個相關標記樣式進行繪圖,而不是解析標記樣式(它看起來像您正在嘗試執行的操作)。它也會更乾淨。 – Ajean 2014-10-30 21:20:46