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 图形参数不出现的主要内容,如果未能解决你的问题,请参考以下文章