自定义颜色的饼图部分
136(30天)
显示旧的评论
接受的答案
沃尔特·罗伯森
2012年1月11日
有必要摆脱“clc”让它工作。
注:“馅饼”的行业去逆时针图表。
%程序应用红色和绿色有色颜色派段
%根据扇形段的大小。
函数test1 ()
字形大小= 24;
X = [0 0.5 -0.2 0.3 0.8 -0.7];
无花果=图;
ax =轴(“父”图);
numberOfSegments =长度(X);
rgbmatrix = (1 + (X (:) < 0)。* X (:), 1 - (X (:) > 0) * X (:), 1-abs (X (:)));
hPieComponentHandles =派(ax, (1, numberOfSegments));
标题(“饼图和自定义颜色”,“父”ax,“字形大小”、字形大小);
%全屏放大图。
集(图,“单位”,“归一化”,“outerposition”,(0 0 1 1));
集(图,“名字”,“演示ImageAnalyst & Tanuki”,“numbertitle”,“关闭”)
%分配自定义颜色。
为k = 1: numberOfSegments
%为这个部门创建一个颜色的蛋糕
:pieColorMap = rgbmatrix (k);%这部分的颜色。
%应用颜色我们只是生成饼图。
集(hPieComponentHandles (k * 2 - 1),“FaceColor”,pieColorMap);
集(hPieComponentHandles (k * 2),“字符串”num2str (X (k)),“字形大小”、字形大小);
结束
更多的答案(6)
图像分析
2012年1月10日
迪玛:试试这个:
%创建示例数据和阴谋。
X = [1 1 1 1 1 1];
numberOfSegments =长度(X)
hPieComponentHandles =派(X);
%创建自定义colormap: 0 =纯红色,1 =白色。
斜坡= [0:1 / (numberOfSegments-1): 1)”
pieColorMap = [(numberOfSegments, 1),坡道,坡道)
%注意:使用flipud (pieColorMap)如果你想要它
%的其他方式:0 =白,1 =纯红色。
% pieColorMap = flipud (pieColorMap);
%应用颜色我们只是生成饼图。
SetPieChartColors (hPieComponentHandles pieColorMap);
标题(“饼图和自定义颜色”,“字形大小”、字形大小);
图像分析
2012年1月8日
迪玛:
试试这个演示。test1保存它。米,然后运行它。我认为它会做什么你要求(希望这是你想要的)。
%程序应用红色着色颜色派段
%根据扇形段的大小。
函数test1 ()
试一试
clc;%清除命令窗口。
工作空间;%确定工作区面板显示。
字形大小= 24;
X = (1 2 3 4 5 6);
hPieComponentHandles =派(X);
标题(“饼图和自定义颜色”,“字形大小”、字形大小);
%全屏放大图。
集(gcf,“单位”,“归一化”,“outerposition”,(0 0 1 1));
集(gcf,“名字”,“由ImageAnalyst演示”,“numbertitle”,“关闭”)
%询问用户是否希望应用自定义颜色。
promptMessage = sprintf (这是最初的颜色。\ nDo你想应用自定义颜色,\也取消退出程序?”);
按钮= questdlg (promptMessage,“继续”,“继续”,“取消”,“继续”);
如果比较字符串(按钮,“取消”)
返回;
结束
%分配自定义颜色。
numberOfSegments =长度(X)
为k = 1: numberOfSegments
%为这个部门创建一个颜色的蛋糕
fractionOfPie = X (k) / (X)和
thisColor = [1 1-fractionOfPie 1-fractionOfPie]%显示在命令窗口。
:pieColorMap (k) = thisColor;%这部分的颜色。
%应用颜色我们只是生成饼图。
SetPieChartColors (hPieComponentHandles pieColorMap);
如果k < numberOfSegments
promptMessage = sprintf (的新颜色适用于部门% d \ nContinue或取消?”、k);
按钮= questdlg (promptMessage,“继续”,“继续”,“取消”,“继续”);
如果比较字符串(按钮,“取消”)
打破;
结束
结束
结束
抓我
errorMessage = sprintf (test1的误差函数。\ n \ nError信息:\ n % s’,ME.message);
流(1,“% s \ n”,errorMessage);
uiwait (warndlg (errorMessage));
结束
返回;从test1 %
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%如果你应用colormap, MATLAB具有“特性”应用
% colormap上的所有轴图,不仅当前轴。因此,如果
%你施加一个colormap当前轴(饼图)思考
%将只影响你的饼图,你会惊讶地发现它影响
%所有其他图表和图片对话框。为了解决,使用
%这个函数派部分的颜色和不影响
%的任何其他对象对话框。你需要通过
% hPieComponentHandles你得到当你创建饼图:
% hPieComponentHandles =派([Value1, Value2, Value3]{“标签1”,标签2,'标签3 '});
%然后弥补你的彩色地图是这样的:
% pieColorMap (: 1) = (。22点29];%颜色段1。
% pieColorMap (2) = (。25。55 .79];%颜色段2。
% pieColorMap (3) = (。93 .11 .14点);%颜色段3。
%,最后,调用这个函数
% SetPieChartColors (hPieComponentHandles pieColorMap);
函数SetPieChartColors (hPieComponentHandles PieSegmentColors)
试一试
numberOfSegments = min([长度尺寸(PieSegmentColors, 1) (hPieComponentHandles)))
为s = 1: numberOfSegments
集(hPieComponentHandles ((s - 1) * 2 + 1),“FaceColor”PieSegmentColors(年代,:));
结束
抓我
errorMessage = sprintf (“SetPieChartColors误差函数。\ n \ nError信息:\ n % s’,ME.message);
流(1,“% s \ n”,errorMessage);
uiwait (warndlg (errorMessage));
结束
返回;从SetPieChartColors %
17日评论
图像分析
2012年1月9日
如果公式到达颜色适合你,然后做k前循环的循环,你可以做的
pieColorMap (k) = rgbmatrix (k,:);%这部分的颜色。
和摆脱thisColor计算。见鬼,你甚至不需要k循环——这只是教程的目的。你可以指定颜色都在一个没有任何循环/ k:
SetPieChartColors (hPieComponentHandles rgbmatrix);