我已閱讀另一個colormap
線程http://www.mathworks.com/matlabcentral/answers/101346上的帖子推薦的文章,我理解這個概念。我在使用bar(z,'stacked')
函數時無法理解CDATA
的值。使用條紋(z,'stacked')的多個顏色地圖
我有一個圖,主軸使用cmap
繪製,我創建並定位了一個新的軸線圖,我希望它使用cmap2
。
例如,我的代碼包括:
maps = colormap([cmap;cmap2]);
bH = bar(z,'stacked');
其中Z = 25×10
現在,當我看CDATA
get(bH,'CDATA')
小區(10年超過25點的年度數據)數組的大小爲1x10,每個單元格包含字符串'scaled'。
現在,如果我看看每個孩子
childH = get(bH,'children');
get(childH{i},'CDATA')
尺寸25×10的矩陣具有相同的每個值返回的CDATA
。
例如childH{i}
的CDATA
是具有所有值= i
所以,我怎麼可以擴展這些映射到我的colormap
因爲 從文檔上面我需要執行一個尺寸25×10的矩陣:
m = size(colormap,1); % Number of colors in the current colormap
Data = get(H,'CData') % Where H is a handle to a surface or patch object
cmin = min(CData(:)); % Minimum color value
cmax = max(CData(:)); % Maximum color value
idx = min(m,round((m-1)*(CData-cmin)/(cmax-cmin))+1);
idx
變得min(m,nan)
這總是m
?
我真的需要幫助理解這一點。
我錯過了什麼,或者這個功能是一個特例嗎?
特殊情況,種類:'bar'返回'barseries'的句柄而不是像'surface'或'patch'這樣的原始圖形對象,因此'bH'沒有'CData'屬性(儘管你的結果暗示它_does_有一個沒有記錄的'CDataMapping'屬性)。你是對的,你需要處理它的孩子,這是實際的「補丁」對象 - 我沒有Matlab來交出一個實際的答案,對不起。 – Notlikethat