matplotlib图形参数不会出现

时间:2018-02-07 14:56:40

标签: python matplotlib pyqt5

这是我的问题:我在Qt5应用程序中有一个嵌入式matplotlib图。当我按下“编辑轴,曲线和图像参数”按钮时,我选择了我关注的子图,但只显示选项卡“轴”选项。它缺少“曲线”和“图像”的标签。

实际图片

虽然我应该有这样的事情:

目标图片

如果有人知道为什么......

2 个答案:

答案 0 :(得分:0)

答案很简单:

  • 如果图中没有曲线(直线),则没有“曲线”选项卡。
  • 如果图中没有图像,则没有“图像”选项卡。

答案 1 :(得分:0)

类View2D(MapView):

def show(self, som, what='codebook', which_dim='all', cmap=None,
         col_sz=None, desnormalize=False):
    (self.width, self.height, indtoshow, no_row_in_plot, no_col_in_plot,
     axis_num) = self._calculate_figure_params(som, which_dim, col_sz)
    self.prepare()

    if not desnormalize:
        codebook = som.codebook.matrix
    else:
        codebook = som._normalizer.denormalize_by(som.data_raw, som.codebook.matrix)

    if which_dim == 'all':
        names = som._component_names[0]
    elif type(which_dim) == int:
        names = [som._component_names[0][which_dim]]
    elif type(which_dim) == list:
        names = som._component_names[0][which_dim]


    while axis_num < len(indtoshow):
        axis_num += 1
        ax = plt.subplot(no_row_in_plot, no_col_in_plot, axis_num)
        ind = int(indtoshow[axis_num-1])

        min_color_scale = np.mean(codebook[:, ind].flatten()) - 1 * np.std(codebook[:, ind].flatten())
        max_color_scale = np.mean(codebook[:, ind].flatten()) + 1 * np.std(codebook[:, ind].flatten())
        min_color_scale = min_color_scale if min_color_scale >= min(codebook[:, ind].flatten()) else \
            min(codebook[:, ind].flatten())
        max_color_scale = max_color_scale if max_color_scale <= max(codebook[:, ind].flatten()) else \
            max(codebook[:, ind].flatten())
        norm = matplotlib.colors.Normalize(vmin=min_color_scale, vmax=max_color_scale, clip=True)

        mp = codebook[:, ind].reshape(som.codebook.mapsize[0],
                                      som.codebook.mapsize[1])
        # pl = plt.pcolor(mp[::-1], norm=norm, cmap='jet')  
        pl = plt.imshow(mp[::-1], interpolation='nearest', origin='lower',cmap='jet') 

        plt.axis([0, som.codebook.mapsize[1], 0, som.codebook.mapsize[0]])
        plt.title(names[axis_num - 1])
        ax.set_yticklabels([])
        ax.set_xticklabels([])
        plt.colorbar(pl)

    plt.show()