这似乎应该比它更容易......
在matlab 2016b中,我想使用色彩图为饼图的切片着色。
我的数据是三个元素向量,可能包含零。我的色彩图中有三种颜色需要按照矢量数据的顺序使用。
例如:
data = [1 0 1];
my_cols = [1.0000 0.8398 0; 0.8594 0.0781 0.2344; 0.2539 0.4102 0.8789];
labels = {'','',''};
p = pie(data,labels);
p.Patch = my_cols;
我尝试了以前建议的各种方法,但似乎与2016b版本无关。
请注意,我需要数据的第一个元素始终与colormap中的第一个颜色相对应。我认为Matlab根据大小对切片进行着色,但我不希望这样。
答案 0 :(得分:1)
我手头没有16b。以下是在17a中完成的:
<input name="number" required type="number" pattern=".{9,20}" title="Please Enter Your Number at least 9 Digit" />
说明:data = [1 0.5 1];
my_cols = [1.0000 0.8398 0; 0.8594 0.0781 0.2344; 0.2539 0.4102 0.8789];
labels = {'','',''};
p = pie(data,labels);
p(1).FaceColor = my_cols(1,:);
p(3).FaceColor = my_cols(2,:);
p(5).FaceColor = my_cols(3,:);
为每个切片,补丁对象和相应的字符串对象返回2个元素。您必须设置补丁对象的颜色,例如您的pie
,p(1)
和p(3)
。
请注意,我更改了您的p(5)
输入。使用向量中的零,您将收到警告,并且您的可变尺寸已关闭。