我制作了一個包含 50 條曲線的圖,每條曲線對應一個名為“Jacobi 常數”的引數的特定值,所以我有 50 個 jacobi 常數值存盤在陣列中:
0.300089684137397E 01
0.300089042922377E 01
0.300088401572195E 01
0.300087759725008E 01
0.300087115690923E 01
0.300086474534639E 01
0.300085827898499E 01
0.300085188022182E 01
0.300084551820425E 01
0.300083908717519E 01
0.300083267112291E 01
0.300082621633541E 01
0.300081978306838E 01
0.300081343238767E 01
0.300080689895638E 01
0.300080053945119E 01
0.300079405784651E 01
0.300078765677301E 01
0.300078137552897E 01
0.300077485059859E 01
0.300076849514638E 01
0.300076213310428E 01
0.300075556036120E 01
0.300074923392480E 01
0.300074272105419E 01
0.300073626366797E 01
0.300072988110949E 01
0.300072359251233E 01
0.300071715639932E 01
0.300071057435589E 01
0.300070439186567E 01
0.300069781324123E 01
0.300069138951169E 01
0.300068513892704E 01
0.300067849690606E 01
0.300067204496398E 01
0.300066580026063E 01
0.300065917265777E 01
0.300065276941195E 01
0.300064660586285E 01
0.300064007078422E 01
0.300063379168696E 01
0.300062714644242E 01
0.300062077361542E 01
0.300061436361235E 01
0.300060792230082E 01
0.300060145569814E 01
0.300059496993140E 01
0.300058879634480E 01
0.300058229105101E 01
我想使用顏色圖為曲線著色,然后在橫向欄中顯示圖例,該圖例顯示對應于每種軌道顏色的數值。

通過考慮我的示例影像,我想在橫向條中添加常量陣列,然后根據橫向條為每條曲線著色。
% Family of 50 planar Lyapunov orbits around L1 in dimensionless unit
fig = figure;
for k1 = 1:(numel(files_L1_L2_Ly_prop)-2)
plot([Ly_orb_filt(1).prop(k1).orbits.x],[Ly_orb_filt(1).prop(k1).orbits.y],...
"Color",my_green*1.1); hold on %"Color",my_green*1.1
colorbar()
end
axis equal
% Plot L1 point
plot(Ly_orb_filt_sys_data(1).x,Ly_orb_filt_sys_data(1).y,'.',...
'color',[0,0,0],'MarkerFaceColor',my_green,'MarkerSize',10);
text(Ly_orb_filt_sys_data(1).x-0.00015,Ly_orb_filt_sys_data(1).y-0.0008,'L_{1}');
%Primary bodies plots
plot(AstroData.mu_SEM_sys -1,0,'.',...
'color',my_blue,'MarkerFaceColor',my_blue,'MarkerSize',20);
text(AstroData.mu_SEM_sys-1,0-0.001,'$Earth Moon$','Interpreter',"latex");
grid on;
xlabel('$x$','interpreter','latex','fontsize',12);
ylabel('$y$','interpreter','latex','FontSize',12);
如何根據 Jacobi 常數值對每條線進行著色?
uj5u.com熱心網友回復:
您可以使用任何顏色圖生成一系列 RGB 三元組供繪圖例程讀取(或創建一個m×3矩陣,其中包含您自己之間的元素0)1:
n = 10; % Plot 10 lines
x = 1:15;
colour_map = jet(n); % Get colours. parula, hsv, hot etc.
figure;
hold on
for ii = 1:n
% Plot each line individually
plot(x, x ii, 'Color', colour_map(ii, :))
end
colorbar % Show the colour bar.
在 R2007b 上產生:

請注意,索引到顏色映射將產生線性間隔的顏色,因此您需要進行插值或計算很多才能獲得所需的特定顏色。然后您可以(需要?)手動修改生成的顏色條標簽以反映您的輸入值。我會簡單地使用parula(50), 將其索引視為linspace(jacobi(1), jacobi(end), 50)然后my_colour = interp1(linspace(jacobi(1), jacobi(end), 50), parula(50), jacobi)。
"Color",my_green*1.1因此,在您的代碼中,不要使用每一行,而是使用"Color",my_colour(kl,:)您my_colour定義的 RGB 三元組系列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456628.html
上一篇:MATLAB*.運營商呢?
