Get the facecolor of a contourf plot
显示 更早的评论
I would like to find the facecolor of the the contourf patches. For example if :
[X,Y,Z] = peaks;
figure
contourf(X,Y,Z,4)
I would like to get the 5 different facecolors of the patches of the contour.
Thank you
回答(1 个)
Doug Hull
2014-3-11
[X,Y,Z] = peaks;
[l, h] = contourf(X,Y,Z,4)
hp = get(h,'children')
get(hp,'cdata')
colorbar
This gets you the value of the cdata. Look at the colormap to get the actual RGB color. Look at the colorbar to see what those values correspond to.
5 个评论
Giorgos Papakonstantinou
2014-3-11
Kelly Kearney
2014-3-11
[X,Y,Z] = peaks;
[l, h] = contourf(X,Y,Z,4);
hp = get(h,'children');
colorbar;
clim = get(gca, 'clim');
cdata = cell2mat(get(hp, 'cdata'));
cmap = colormap;
col = interpcolor(cdata, cmap, clim)
---
col =
1 0.48437 0
0.5 0 0
0 0 0.5625
0 0.54688 1
0 0.54688 1
1 0.48437 0
0.53125 1 0.46875
0 0.54688 1
0 0 0.5625
Kellen
2015-1-12
Any ideas on how to do this in 2014b, in which the cdata field no longer exists?
Kelly Kearney
2015-1-12
On the plus side, the new version stores the exact color value, so you don't need to use the color interpolation trick. On the down side, the properties are buried under a few layers of undocumented properties, so this may change down the road:
[X,Y,Z] = peaks;
[l, h] = contourf(X,Y,Z,4);
rgba = double(cat(2, h.FacePrims.ColorData))./255;
col = rgba(1:3,:)';
Johannes Korsawe
2015-1-26
Kelly, is there some undocumented chance for some magic to set some FaceAlpha-Values for the plotted areas of the contourf-command?
类别
在 帮助中心 和 File Exchange 中查找有关 Contour Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!