⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfbox_plotnetworkwin.m

📁 toolbox for spm 5 for data, model free analysis
💻 M
字号:
function [win,pls]=mfbox_plotnetworkwin(M,tcs,varargin)% Copyright by Peter Gruber, Fabian J. Theis% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name%           http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txt%if (nargin>2), tl = varargin{1}; else, tl = 0:size(tcs,1); endif (nargin>3), tcmap = varargin{2}; else, tcmap = repmat(1:size(tcs,1),length(tl),1); endarrows = struct('from',{},'to',{},'color',{},'width',{});ics = struct('num',{},'pos',{},'size',{});lM = size(M,1);iM = imag(M)/max(imag(M(:)));M = real(M)/max(real(M(:)));p = [sin(2*pi*(1:lM)/lM);cos(2*pi*(1:lM)/lM)];s = min(4*pi/lM,sqrt(2));ap = (4-(s/sqrt(2)))/10;for i=1:lM    for j=i+1:lM        q = p(1:2,[i,j])*ap;        if (M(i,j)>0.5)            arrows(end+1) = struct('from',.5+q(:,1),'to',.5+q(:,2),'color',[0,1-iM(i,j),0],'width',4*M(i,j));        elseif (M(j,i)>0.5)            arrows(end+1) = struct('from',.5+q(:,2),'to',.5+q(:,1),'color',[0,1-iM(j,i),0],'width',4*M(j,i));        end    end    ics(end+1) = struct('num',{{i,1:length(tl)}},'pos',[p(1,i)*.4+.5-s/20,p(2,i)*.4+.5-s/20],'size',[s/10,s/10]);endif (nargout==2)    win = mfbox_congraph();    pls = {};    set(win,'Color',[1;1;1],'Units','pixel', ...        'Position',[1,1,400,400]);    for i=1:length(arrows)        annotation(win,'arrow',[arrows(i).from(1),arrows(i).to(1)], ...            [arrows(i).from(2),arrows(i).to(2)], ...            'LineWidth',arrows(i).width,'Color',arrows(i).color);    end    for i=1:length(ics)        a = axes('Position',[ics(i).pos,ics(i).size.*[1,.66]],'Units','normalized','Parent',win);        num = ics(i).num{1}; seg = ics(i).num{2};        pls{num} = {plot(a,tl(seg),tcs(seg,num)),min(seg),num};        set(pls{num}{1},'Color',[0;0;0]);        set(a,'XTickMode','manual','Color',.8*ones(3,1), ...            'XTickLabelMode','manual','YTickMode','manual', ...            'YTickLabelMode','manual','XTick',[],'XTickLabel',{}, ...            'YTick',[],'YTickLabel',{});        annotation(win,'textbox',[ics(i).pos+[0,.66].*ics(i).size,ics(i).size.*[1,.34]], ...            'FitHeightToText','off','String',{mat2str(num)}, ...            'VerticalAlignment','middle','HorizontalAlignment', ...            'center','EdgeColor',[1;1;1]);    endelseif (nargout==1)    win = sprintf('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="%1.4fpx" height="%1.4fpx" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n<defs id="defs">\n<marker orient="auto" refY="0.0" refX="0.0" id="Arrow2Lend" overflow="visible">\n<path fill-rule="evenodd" stroke-width="0.62500000" stroke-linejoin="round" d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " transform="scale(0.6) rotate(180) translate(1,0)"/>\n</marker>\n</defs>\n<g id="timewindowgraph">',1200,1000);    for i=1:length(ics)        ic = '';        num = ics(i).num{1}; seg = ics(i).num{2};        for j=1:length(seg)            if ((isempty(ic))&&(~isempty(tcs{seg(j),num})))                ic = sprintf('<g transform="translate(%1.4f,%1.4f)">\n<g transform="scale(%1.4f,%1.4f)">\n%s</g>\n</g>\n',1000*ics(i).pos(1),1000*ics(i).pos(2),10*ics(i).size(1),10*ics(i).size(2),tcs{seg(j),num});            end        end        win = sprintf('%s\n%s',win,ic);    end    for i=1:length(arrows)        c = floor(arrows(i).color*255);        win = sprintf('%s\n<line x1="%1.4f" x2="%1.4f" y1="%1.4f" y2="%1.4f" stroke="#%02x%02x%02x" stroke-width="%1.4f" marker-end="url(#Arrow2Lend)"/>',win,1000*arrows(i).from(1),1000*arrows(i).to(1),1000*arrows(i).from(2),1000*arrows(i).to(2),c(1),c(2),c(3),2*arrows(i).width);    end    legend = sprintf('<g id="legend" transform="translate(1000,0)">\n<rect x="0" y="0" width="200" height="1000" fill="none" stroke="black" stroke-width="2" rx="10" ry="10"/>\n');    legendtext = {'green=delayed timecorrelations'};    for i=1:length(legendtext)        legend = sprintf('%s<text x="5" y="%d">%s</text>\n',legend,i*20,legendtext{i});    end    legend = sprintf('%s</g>\n',legend);    win = sprintf('%s\n<rect x="0" y="0" width="1000" height="1000" fill="none" stroke="black" stroke-width="2" rx="10" ry="10" />\n</g>\n%s\n</svg>\n',win,legend);end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -