📄 colorbar.c
字号:
&ans,
mlfNSet(
0,
h,
mxCreateString("units"),
mxCreateString("normalized"),
NULL));
/*
* pos = get(h,'Position');
*/
mlfAssign(&pos, mlfGet(h, mxCreateString("Position"), NULL));
/*
* [az,el] = view;
*/
mlfAssign(&az, mlfNView(2, &el, NULL, NULL));
/*
* stripe = 0.075; edge = 0.02;
*/
mlfAssign(&stripe, mlfScalar(0.075));
mlfAssign(&edge, mlfScalar(0.02));
/*
* if all([az,el]==[0 90]), space = 0.05; else space = .1; end
*/
if (mlfTobool(
mlfAll(
mlfEq(
mlfHorzcat(az, el, NULL),
mlfDoubleMatrix(1, 2, __Array0_r, NULL)),
NULL))) {
mlfAssign(&space, mlfScalar(0.05));
} else {
mlfAssign(&space, mlfScalar(.1));
}
/*
* set(h,'Position',[pos(1) pos(2) pos(3)*(1-stripe-edge-space) pos(4)])
*/
mclPrintAns(
&ans,
mlfNSet(
0,
h,
mxCreateString("Position"),
mlfHorzcat(
mlfIndexRef(pos, "(?)", mlfScalar(1.0)),
mlfIndexRef(pos, "(?)", mlfScalar(2.0)),
mlfMtimes(
mlfIndexRef(pos, "(?)", mlfScalar(3.0)),
mlfMinus(
mlfMinus(mlfMinus(mlfScalar(1.0), stripe), edge), space)),
mlfIndexRef(pos, "(?)", mlfScalar(4.0)),
NULL),
NULL));
/*
* rect = [pos(1)+(1-stripe-edge)*pos(3) pos(2) stripe*pos(3) pos(4)];
*/
mlfAssign(
&rect,
mlfHorzcat(
mlfPlus(
mlfIndexRef(pos, "(?)", mlfScalar(1.0)),
mlfMtimes(
mlfMinus(mlfMinus(mlfScalar(1.0), stripe), edge),
mlfIndexRef(pos, "(?)", mlfScalar(3.0)))),
mlfIndexRef(pos, "(?)", mlfScalar(2.0)),
mlfMtimes(stripe, mlfIndexRef(pos, "(?)", mlfScalar(3.0))),
mlfIndexRef(pos, "(?)", mlfScalar(4.0)),
NULL));
/*
* ud.origPos = pos;
*/
mlfIndexAssign(&ud, ".origPos", pos);
/*
*
* % Create axes for stripe and
* % create DeleteProxy object (an invisible text object in
* % the target axes) so that the colorbar will be deleted
* % properly.
* ud.DeleteProxy = text('parent',h,'visible','off',...
*/
mlfIndexAssign(
&ud,
".DeleteProxy",
mlfNText(
1,
mxCreateString("parent"),
h,
mxCreateString("visible"),
mxCreateString("off"),
mxCreateString("tag"),
mxCreateString("ColorbarDeleteProxy"),
mxCreateString("handlevisibility"),
mxCreateString("off"),
mxCreateString("deletefcn"),
mxCreateString("eval('delete(get(gcbo,''userdata''))','')"),
NULL));
/*
* 'tag','ColorbarDeleteProxy',...
* 'handlevisibility','off',...
* 'deletefcn','eval(''delete(get(gcbo,''''userdata''''))'','''')');
* ax = axes('Position', rect);
*/
mlfAssign(&ax, mlfNAxes(1, mxCreateString("Position"), rect, NULL));
/*
* setappdata(ax,'NonDataObject',[]); % For DATACHILDREN.M
*/
mlfSetappdata(
ax, mxCreateString("NonDataObject"), mclCreateEmptyArray(), NULL);
/*
* set(ud.DeleteProxy,'userdata',ax)
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfIndexRef(ud, ".DeleteProxy"),
mxCreateString("userdata"),
ax,
NULL));
/*
* set(h,'units',units)
*/
mclPrintAns(
&ans, mlfNSet(0, h, mxCreateString("units"), units, NULL));
/*
* else
*/
} else {
/*
* axes(ax);
*/
mclAssignAns(&ans, mlfNAxes(0, ax, NULL));
/*
* ud = get(ax,'userdata');
*/
mlfAssign(&ud, mlfGet(ax, mxCreateString("userdata"), NULL));
/*
* end
*/
}
/*
*
* % Create color stripe
* n = size(colormap,1);
*/
mlfAssign(
&n, mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)));
/*
* image([0 1],t,(1:n)','Tag','TMW_COLORBAR','deletefcn','colorbar(''delete'')'); set(ax,'Ydir','normal')
*/
mclAssignAns(
&ans,
mlfNImage(
0,
mlfDoubleMatrix(1, 2, __Array1_r, NULL),
t,
mlfCtranspose(mlfColon(mlfScalar(1.0), n, NULL)),
mxCreateString("Tag"),
mxCreateString("TMW_COLORBAR"),
mxCreateString("deletefcn"),
mxCreateString("colorbar('delete')"),
NULL));
mclPrintAns(
&ans,
mlfNSet(
0, ax, mxCreateString("Ydir"), mxCreateString("normal"), NULL));
/*
* set(ax,'YAxisLocation','right')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
ax,
mxCreateString("YAxisLocation"),
mxCreateString("right"),
NULL));
/*
* set(ax,'xtick',[])
*/
mclPrintAns(
&ans,
mlfNSet(0, ax, mxCreateString("xtick"), mclCreateEmptyArray(), NULL));
/*
*
* % set up axes deletefcn
* set(ax,'tag','Colorbar','deletefcn','colorbar(''delete'')')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
ax,
mxCreateString("tag"),
mxCreateString("Colorbar"),
mxCreateString("deletefcn"),
mxCreateString("colorbar('delete')"),
NULL));
/*
*
* elseif loc(1)=='h', % Append horizontal scale to top of current plot
*/
} else if (mlfTobool(
mlfEq(
mlfIndexRef(loc, "(?)", mlfScalar(1.0)),
mxCreateString("h")))) {
/*
*
* if isempty(ax),
*/
if (mlfTobool(mlfIsempty(ax))) {
/*
* units = get(h,'units'); set(h,'units','normalized')
*/
mlfAssign(&units, mlfGet(h, mxCreateString("units"), NULL));
mclPrintAns(
&ans,
mlfNSet(
0,
h,
mxCreateString("units"),
mxCreateString("normalized"),
NULL));
/*
* pos = get(h,'Position');
*/
mlfAssign(&pos, mlfGet(h, mxCreateString("Position"), NULL));
/*
* stripe = 0.075; space = 0.1;
*/
mlfAssign(&stripe, mlfScalar(0.075));
mlfAssign(&space, mlfScalar(0.1));
/*
* set(h,'Position',...
*/
mclPrintAns(
&ans,
mlfNSet(
0,
h,
mxCreateString("Position"),
mlfHorzcat(
mlfIndexRef(pos, "(?)", mlfScalar(1.0)),
mlfPlus(
mlfIndexRef(pos, "(?)", mlfScalar(2.0)),
mlfMtimes(
mlfPlus(stripe, space),
mlfIndexRef(pos, "(?)", mlfScalar(4.0)))),
mlfIndexRef(pos, "(?)", mlfScalar(3.0)),
mlfMtimes(
mlfMinus(mlfMinus(mlfScalar(1.0), stripe), space),
mlfIndexRef(pos, "(?)", mlfScalar(4.0))),
NULL),
NULL));
/*
* [pos(1) pos(2)+(stripe+space)*pos(4) pos(3) (1-stripe-space)*pos(4)])
* rect = [pos(1) pos(2) pos(3) stripe*pos(4)];
*/
mlfAssign(
&rect,
mlfHorzcat(
mlfIndexRef(pos, "(?)", mlfScalar(1.0)),
mlfIndexRef(pos, "(?)", mlfScalar(2.0)),
mlfIndexRef(pos, "(?)", mlfScalar(3.0)),
mlfMtimes(stripe, mlfIndexRef(pos, "(?)", mlfScalar(4.0))),
NULL));
/*
* ud.origPos = pos;
*/
mlfIndexAssign(&ud, ".origPos", pos);
/*
*
* % Create axes for stripe and
* % create DeleteProxy object (an invisible text object in
* % the target axes) so that the colorbar will be deleted
* % properly.
* ud.DeleteProxy = text('parent',h,'visible','off',...
*/
mlfIndexAssign(
&ud,
".DeleteProxy",
mlfNText(
1,
mxCreateString("parent"),
h,
mxCreateString("visible"),
mxCreateString("off"),
mxCreateString("tag"),
mxCreateString("ColorbarDeleteProxy"),
mxCreateString("handlevisibility"),
mxCreateString("off"),
mxCreateString("deletefcn"),
mxCreateString("eval('delete(get(gcbo,''userdata''))','')"),
NULL));
/*
* 'tag','ColorbarDeleteProxy',...
* 'handlevisibility','off',...
* 'deletefcn','eval(''delete(get(gcbo,''''userdata''''))'','''')');
* ax = axes('Position', rect);
*/
mlfAssign(&ax, mlfNAxes(1, mxCreateString("Position"), rect, NULL));
/*
* setappdata(ax,'NonDataObject',[]); % For DATACHILDREN.M
*/
mlfSetappdata(
ax, mxCreateString("NonDataObject"), mclCreateEmptyArray(), NULL);
/*
* set(ud.DeleteProxy,'userdata',ax)
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfIndexRef(ud, ".DeleteProxy"),
mxCreateString("userdata"),
ax,
NULL));
/*
* set(h,'units',units)
*/
mclPrintAns(
&ans, mlfNSet(0, h, mxCreateString("units"), units, NULL));
/*
* else
*/
} else {
/*
* axes(ax);
*/
mclAssignAns(&ans, mlfNAxes(0, ax, NULL));
/*
* ud = get(ax,'userdata');
*/
mlfAssign(&ud, mlfGet(ax, mxCreateString("userdata"), NULL));
/*
* end
*/
}
/*
*
* % Create color stripe
* n = size(colormap,1);
*/
mlfAssign(
&n, mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)));
/*
* image(t,[0 1],(1:n),'Tag','TMW_COLORBAR','deletefcn','colorbar(''delete'')'); set(ax,'Ydir','normal')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -