bar3颜色取决于zdata

Gun*_*uyf 7 matlab customization plot colors histogram

使用该bar3函数时,条形图的颜色取决于数据所在的列或行.示例:

data = peaks(20);
bar3(data);
view(-135,30)
Run Code Online (Sandbox Code Playgroud)

bar3的例子

如何才能使每个条形图的颜色仅取决于该条形图的高度(zdata)?

Gun*_*uyf 14

由于所有的条形都是用贴片构成的,因此很难弄清楚条形的颜色.你必须改变补丁顶点的zdata; 因为这不是很简单,我已经为此目的做了一个功能:bar3c

例:

data = peaks(20);
bar3c(data);
view(-135,30)
Run Code Online (Sandbox Code Playgroud)

bar3c的例子

编辑

如果要使用其他颜色,只需更改颜色图.
如果要设置整个范围以获得相同的颜色而不是在最小值/最大值之间获得渐变,则必须将调用更改为makecdata.现在它使用zdata指定颜色,您可以轻松更改它以给出范围特定的颜色.

实际上,我只是这样做了,结果可以在这里找到.

例:

data = peaks(20);
bar3crange([-8 0 3 4 8], data);
% colormap: red/yellow/green/blue
colormap([1 0 0;1 1 0;0 1 0;0 0 1]);
view(-135,30);
Run Code Online (Sandbox Code Playgroud)

bar3crange的例子