我完全陷入困境!!!
有谁能帮我解决这个问题?提前谢谢。
我想要的是:我想绘制一个大脑网络,使得节点有自己的色彩图(jet)和colorbar,在同一图中,链接有自己的色彩图(灰色)和色条。
问题:当我在屏幕上显示来自两个不同颜色图的两个颜色条的头部时,两个颜色条在我的代码中显示第一个声明的颜色图(喷射)。换句话说,似乎第一个声明的colormap(jet)重写了最后声明的colormaps(灰色)。显示的图显示了第一个colormap(jet),从不显示独立的colorbar gray!
我做了什么?:我通过这些论坛关注了很多链接,数学工作有助于构建我自己的脚本。我在Matlab中很天真,我在macOS中使用它与matlab版本R2013a。代码如下所示:
Figure
hold
plot1 with data1 associated to colormap(gray)
plot2 with data2 associated to colormap(jet)
axis square
axis off
box off
set(gca,'XTick',[],'YTick',[])
set(gcf, 'units','normalized','outerposition',[0 0 1 1]) %EXPANDING FIGURE ON SCREEN
ax1 = gca; %GETTING THE AXES OF THE FORMER FIGURE
ax1p = get(ax1,'Position');
colormap(ax1,'jet') %colorbar for nodes
cb1 = colorbar('west');
set(cb1, 'Position', [ax1p(1)+ax1p(3)-0.17 ax1p(2)+0.17 0.03 ax1p(2)+ax1p(3)-.3])
set(cb1, 'fontsize', 30);
caxis([min(n_atribut) max(n_atribut)]);
ax2 = axes; %getting axes for second colorbar
set(ax2, 'Position', ax1p); % Co-locate ax2 atop ax1
ax2p = get(ax2, 'Position');
axis off; % Make ax2 invisible
linkaxes([ax1,ax2],'xy'); % Link ax1 and ax2 so zooming will work properly:
colormap(ax2,'gray') %colorbar for links
cb2 = colorbar('west'); % Create a new colorbar
set(cb2, 'Position', [ax2p(1)+ax2p(2)+0.6 ax2p(2)+0.17 0.03 ax2p(2)+ax2p(3)-.3])
set(cb2, 'fontsize', 30);
caxis([min(w_atribut) max(w_atribut)]);
axes(ax2);
hold off
图。下图显示了问题,这是我运行代码时得到的结果 如您所见,即使两个颜色条都有与data1和data2相关的适当限制,第二个(最右边的一个)也会用colormap jet绘制。 下图显示了我要找的内容: 显然,这个是在其他软件中编辑的,以获得第二个颜色条的灰色图。
话虽如此,有人可以帮助我吗?如果它很重要,我可以发送完整的代码和4个文件来运行并得到错误的数字! 在此先感谢你们,我感谢你们所有的帮助。 Gohann。
答案 0 :(得分:2)
您可能正在寻找freezecolor功能。
答案 1 :(得分:1)
最后,由于Ratbert的评论以及来自Matlab®文件交换的许多人的作品,我得到了答案。感谢John Inversen和David Legland Carlos Adrian vargas的脚本freezeColors.m和cbfreeze.m以及double2rgb.m。 这是我如何解决问题的。
% % % % NODOS
cm1 = colormap(jet);
cb1 = colorbar('Location', 'east', 'fontsize', 30);
caxis([min(n_atribut(n_atribut>0)) max(n_atribut)])
cbfreeze(cm1)
freezeColors(ax1)
% % % % LINKS
cm2 = colormap(bone);
cm2 = flipud(cm2);
colormap(cm2);
cb2 = colorbar('Location', 'west', 'fontsize', 30);
caxis([min(w_atribut) max(w_atribut)])
cbfreeze(cm2)
freezeColors
功能/ toolKit Easy Plot EEG脑网现在可以在GitHub和Matlab Fileexchange中使用。 Matlab@ FileExchange GitHub Reposiroty 谢谢大家。