control makesymbolspec and colorbar color assignment, e.g. linear vs. logarithmic
1 次查看(过去 30 天)
显示 更早的评论
Hi folks, My apologies if this is answered elsewhere, but I've searched all over. Briefly, I'm using the mapping toolbox to color polygons based on values in a shapefile . For some datasets (e.g., coloring US states by population), the way symbolspec groups the data is fine. But for others (i.e., things that some states do and others don't - e.g., growing cotton, or producing oil, etc.), a linear scale can't show the necessary details. In these cases, there are many states down at the bottom end of the scale, and just a few at the top.
Is there a way to 'shift' the colors to account for this - so that the colorbar is not dominated by a large value?
E.g.,if
data = [1 1.5 1.8 3 4.5 8 70 100]
I'd like values < 2 to be one color, the values > 2 and < 5 to be another, the values > 5 and < 10 another, etc. With these data, as I currently use makesymbolspec, I get all the low values ( i.e., less than 10) as one color. (Manually editing the colormap is possible (though tedious), but the colorbar would then be dominated by the color that stretches from, e.g., 10 - 100.)
Here's how I code the variable densityColors, to be used in geoshow:
densityColors = makesymbolspec('Polygon', ...
{'TmpData', [0 max(data)],...
'FaceColor', myColormap});
Thanks very much in advance!
0 个评论
采纳的回答
Rob Comer
2011-5-27
Consider shifting your data rather than the colormap.
You could write a function that maps values < 2 to 1, values in the interval [2 5] to 2, etc. Apply this mapping to each element in your geostruct array, and store the result in a new attribute field that you add to the geostruct itself. (Keep the original attribute field, of course.)
Thus, for each feature, the value in your new, auxiliary field would be an integer between 1 and N, where N is the total number of data bins. At this point you can just use the name of the new field together with a colormap of length N when calling makesymbolspec.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Colormaps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!