Associate colormap to temperature of plot x,y data

7 ビュー (過去 30 日間)
Phil Newman
Phil Newman 2016 年 4 月 10 日
回答済み: Phil Newman 2016 年 4 月 26 日
Hello,
I'm trying to find a way to map temperature (degC) to a color map, such as 'jet', so that when I plot a x,y graph, I can plot the color of that line to represent the temperature of the data
for example, my temperature range would be -50degC to +150degC.
on one figure plot, I could plot three lines of measurement data, one taken at cold (-30degC), another at room temperature (+23degC), and the last at hot (+75degC). The colors of the plot lines would be blue, green, and red.
I would use some kind of lookup to the color map, based on the known temperature of the data (data file includes temperature in the header).
this would be a 2D plot, so instead of e.g. figure;plot(x,y,'k-');hold on;plot(a,b,'r-') it would be
% lookup temperature of dataset x,y and dataset a,b tempxy = -15; tempab = +45; % find this temperature and associated a color to them colorxy = [0 0 0.789]; colorab = [0 0.456 1]; figure;plot(x,y,'color',colorxy) %etc
Can anyone please advise on the best way to do this?
Thank you.

採用された回答

Phil Newman
Phil Newman 2016 年 4 月 26 日
HI,
this was my final solution.
colormap = jet; % or type out values of jet into colormap
x = 1:0.1:20; % dummy dataset
y = sin(x);
newrange = [1:64/100:64]'; % temperature range of -25degC to +75degC = 100 points
oldrange = [1:1:64]';
colormapinterp = interp1(oldrange,colormap,newrange); %Vq = interp1(X,V,Xq);
temprange = [-25:1:75];
temp1 = -15;
temp2 = 25;
temp3 = 65;
k1 = find(temprange==temp1); % find index of each temperature
k2 = find(temprange==temp2);
k3 = find(temprange==temp3);
color1 = colormapinterp(k1,:,:); % find color based on index value
color2 = colormapinterp(k2,:,:);
color3= colormapinterp(k3,:,:);
figure
plot(x,y,'Color',color1)
hold on
plot(x,10*y,'Color',color2)
hold on
plot(x,5*y,'Color',color3)

その他の回答 (2 件)

Image Analyst
Image Analyst 2016 年 4 月 10 日
Use caxis().
  1 件のコメント
Phil Newman
Phil Newman 2016 年 4 月 11 日
Hi,
thanks for your response.
I'm not sure that caxis() will help me here, as this seems to be for mesh type plots?
I am only using line data in a x,y format. each line is plotted individually on the same graph, and the color of the line would correspond to the temperature associated with the data.
Thanks, Phil

サインインしてコメントする。


Phil Newman
Phil Newman 2016 年 4 月 11 日
Hi,
thanks for your response.
I'm not sure that caxis() will help me here, as this seems to be for mesh type plots?
I am only using line data in a x,y format. each line is plotted individually on the same graph, and the color of the line would correspond to the temperature associated with the data.
Thanks, Phil

カテゴリ

Help Center および File ExchangeOrange についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by