pce*_*con 19 python plot matplotlib colorbar
我正在尝试显示散点图的颜色条,但我一直收到错误:
TypeError:首先必须set_array为mappable
这是我正在做的情节:
# Just plotting the values of data that are nonzero
x_data = numpy.nonzero(data)[0] # x coordinates
y_data = numpy.nonzero(data)[1] # y coordinates
# Mapping the values to RGBA colors
data = plt.cm.jet(data[x_data, y_data])
pts = plt.scatter(x_data, y_data, marker='s', color=data)
plt.colorbar(pts)
Run Code Online (Sandbox Code Playgroud)
如果我评论这条线plt.colorbar(pts)我得到了正确的情节,但我也想绘制颜色条.
先感谢您.
Joe*_*ton 15
您传递的是特定的rgb值,因此matplotlib无法构造色彩映射,因为它不知道它与原始数据的关系.
不要将值映射到RGB颜色,而是让它scatter为您处理.
代替:
# Mapping the values to RGBA colors
data = plt.cm.jet(data[x_data, y_data])
pts = plt.scatter(x_data, y_data, marker='s', color=data)
Run Code Online (Sandbox Code Playgroud)
做:
pts = plt.scatter(x_data, y_data, marker='s', c=data[x_data, y_data])
Run Code Online (Sandbox Code Playgroud)
(只需传入c你最初传入的内容plt.cm.jet.)
然后你就可以正常构建一个色彩图.特定错误告诉您颜色已手动设置,而不是通过设置set_array(处理将数据值数组映射到RGB).