我想創建一個三維散點圖,其中包含同一圖表中的不同數據集以及帶有標籤的圖例。我面臨的問題是我無法正確地添加圖例,並且我得到一個帶有空標籤的圖,如http://tinypic.com/view.php?pic=4jnm83&s=5#.Uqd-05GP-gQ中的圖。更具體地說,我得到錯誤: 「warnings.warn(」Legend不支持%s \ n使用代理藝術家。\ n \ nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-藝術家\ n「%(str(orig_handle),)) /usr/lib/pymodules/python2.7/matplotlib/legend.py:610:UserWarning:Legend不支持 改用代理藝術家。」在Matplotlib中使用scatter()在3D散點圖中添加圖例
請從下面的是我迄今爲止嘗試過的實例演示:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import random
import csv
from os import listdir
from os.path import isfile, join
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
handles = []
colors = ['blue', 'red']
X1 = range(0,10)
Y1 = range(0,10)
Z1 = range(0,10)
random.shuffle(X1)
random.shuffle(Y1)
random.shuffle(Z1)
scatter1 = ax.scatter(X1, Y1, Z1, c = colors[0], marker = 'o')
random.shuffle(X1)
random.shuffle(Y1)
random.shuffle(Z1)
scatter2 = ax.scatter(X1, Y1, Z1, c = colors[1], marker = 'v')
ax.set_xlabel('X', fontsize = 10)
ax.set_ylabel('Y', fontsize = 10)
ax.set_zlabel('Z', fontsize = 10)
ax.legend([scatter1, scatter2], ['label1', 'label2'])
plt.show()
我見過其他大致類似的例子,但他們沒有使用散射()的情節。除了一個工作解決方案,有人可以解釋我做錯了什麼嗎?
你看看有關代理的藝術家的錯誤味精指定的鏈接繪製的線? – M4rtini
是的,但由於我是python新手,所以不清楚錯誤的原因。 – Dio