1
data = np.array(number_list)
self.fig = plt.Figure()
self.ax = self.fig.add_subplot(1,1,1)


N = data.max() + 5
self.ax.set_xlim(0,N)
self.ax.set_ylim(0,N)
self.ax.invert_yaxis()

self.ax.get_xaxis().set_visible(False)
self.ax.get_yaxis().set_visible(False)
self.ax.set_aspect('equal')
this = self.ax.scatter(data[:,1], data[:,0],color= 'black', marker = 's', s=3)

self.fig.colorbar(this, ticks=[-1, 0, 1],orientation='horizontal')

self.canvas = FigureCanvas(self, -1, self.fig)
self.toolbar = NavigationToolBar(self.canvas)
    self.vbox = wx.BoxSizer(wx.VERTICAL)
    self.vbox.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.vbox.Add(self.toolbar,0,wx.EXPAND)
    self.vbox.AddSpacer(25)
    self.SetSizer(self.vbox)
    self.vbox.Fit(self)

我尝试创建一个“附加”到图表的颜色栏,但是我得到了错误TypeError: You must first set_array for mappable。该图是一个矩阵图。我哪里错了??

4

1 回答 1

2
this = self.ax.scatter(data[:,1], data[:,0],color= 'black', marker = 's', s=3)

self.fig.colorbar(this, ticks=[-1, 0, 1],orientation='horizontal')

问题在于这些方面。您已将所有标记设置为固定颜色,因此颜色条没有任何意义。如果要使用 ,则colorbar需要通过映射标量 -> 颜色来设置标记的颜色,如下所示:

this = self.ax.scatter(data[:,1], data[:,0],color=color_data, marker = 's', s=3)

self.fig.colorbar(this, ticks=[-1, 0, 1],orientation='horizontal')

其中len(color_data) == len(data[:,0]和 是一维数组对象。

于 2013-02-15T16:28:14.913 回答