2017-04-19 62 views
0

这看起来应该比它容易得多...在matlab 2016b中使用颜色映射为饼图的切片着色

在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工作。

请注意,我需要我的数据的第一个元素始终与我的色图中的第一个颜色相对应。我认为Matlab根据尺寸颜色切片,但我不想要这样。

+0

你尝试过哪种方式?你应该提及那些! –

+0

@SardarUsama对不起,我厌倦了这种方法http://stackoverflow.com/questions/29858254/matlab-explicitly-specifying-pie-graph-slice-color但它不起作用 – user2861089

+0

'饼(数据);' ' colormap(my_cols)'不? –

回答

1

我手边没有16b。以下是以17A进行:

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,:); 

说明:pie返回2个元件针对每个切片,补丁对象和相应的字符串对象。您必须设置修补程序对象的颜色,即您的情况为p(1),p(3)p(5)

请注意,我更改了您的data输入。在向量中的零点,你会得到一个警告,你的变量尺寸关闭。

相关问题