matplotlib 图形参数不出现

Posted

技术标签:

【中文标题】matplotlib 图形参数不出现【英文标题】:matplotlib figure parameters don't appears 【发布时间】:2018-02-07 14:56:39 【问题描述】:

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

实物图

而我应该有这样的东西:

目标图片

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

【问题讨论】:

显示你的代码!!!!! 只是猜测,暂时没有使用 mpl,但 iirc 选项卡仅在您的绘图/图形具有这些元素时才会显示。如果您的测试图只是一条线,那么它可能没有其他设置。 对不起,我忘记密码了,在下面 【参考方案1】:

可能答案很简单:

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

【讨论】:

是的,你是对的,这就是我从 pcolor 切换到 imshow 的原因【参考方案2】:

类 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()

【讨论】:

以上是关于matplotlib 图形参数不出现的主要内容,如果未能解决你的问题,请参考以下文章

Python Matplotlib画图基础介绍

python matplotlib生成图形

Python 使用 matplotlib绘制3D图形

python matplot怎么设置rgb

数据分析之matplotlib篇

数据分析之matplotlib篇