【发布时间】:2019-01-19 23:29:39
【问题描述】:
我有一段简单的代码可以计算一些数量并将其绘制为等高线:
%Calculate Biot number vs. h for a selected material
h = (0:5:1000)';
mat = "Copper";
lambda = 386;
r = (0:0.25:50); %In cm
R = r./100; %In m
%Calculate matrix of Bi values
% R = length(h) x C = length(r)
Bi = (h.*R)/lambda;
%Contour Plot of results
%Set boundaries at Bi = 0, 0.1, 1
conts = [0, 0.1, 1];
ptitle = ["Biot Number for a ", mat, " Sphere"];
%Create a personalized colormap with 30 values.
% 0<Bi<0.1 Green
% 0.1<=Bi<1 Yellow
% Bi >= 1 Red
my_green = [229,255,204]./255;
my_yellow = [255,255,204]./255;
my_pink = [255,229,204]./255;
my_cmap = [repmat(my_green, 10, 1); repmat(my_yellow, 10, 1); repmat(my_pink, 10, 1) ];
clf;
colormap (my_cmap);
contourf(h, r, Bi, conts, 'showtext', 'on');
title(ptitle)
xlabel ("h(W/m^2*K)");
ylabel ("r(cm)");
结果缺少中间色(黄色):
对此有什么办法?
【问题讨论】:
-
创建一个 Px3 数组并将其设置为颜色图,
cm = [repmat([0 1 0], L, 1); repmat([1 1 0], M, 1); repmat([1 0 0], N, 1); ]。LM和N的值取决于您的数据。 -
你能稍微扩展一下“L M 和 N 的值取决于你的数据”吗?
-
为它们使用不同的值,你会明白我的意思。我的意思是,如果您希望颜色条为 60% 的绿色、30% 的黄色和 10% 的红色,请确保 L:M:N 之间的比例为 60:30:10。如果您想自动计算百分比,则需要进行更多修改。另请参阅
caxis。 -
我明白了,我要试试。
标签: plot colors octave contour colormap