我希望在 Matlab中做類似于下圖(
我可以借助內置函式sphere和輕松繪制球體mesh,并且可以使用 繪制軌跡plot3。要生成x-values,我可以使用類似的東西
x = tan((-1:0.01:1)*pi/2);
它給出了適合函式型別的點分布m(x)(大部分動作將圍繞x = 0)。
棘手的部分是顏色。我已經查看了colormap和colorbar內置插件,但兩者似乎都與網格和曲面有關,而不是曲線,所以我沒有看到一種明顯的方法來適應我的用例。
有人對我如何進行有任何想法嗎?
uj5u.com熱心網友回復:
您可以使用scatter3(). 它類似于 plot3() 但允許您為其繪制的每個資料點設定顏色(和大小,如果您愿意)。如果美學適合您,這是一種簡單而通用的方法。
uj5u.com熱心網友回復:
使用plot時,一條線不可能是多色的。為了使一條線多色,您必須繪制每個單獨的線段,然后單獨為它們著色。例如:
% make some dummy data
% note that this is in the form of 1 x N row vectors
t = -.99:0.01:0.99;
x = cos(t * pi/2);
y = sin(t * pi/2);
z = t;
% reorder data in order to plot individual line segments
indices = [1:length(x) - 1; 2:length(x)];
figure;
p = plot3(x(indices), y(indices), z(indices), 'LineWidth', 2);
set(p, {'Color'}, num2cell(parula(length(x) - 1), 2)); % see what happens when you comment out this line
您可以通過更改上面的關鍵字來更改colormap您想要的。parula您可以使用任何提供的顏色圖,或創建自己的顏色圖(以 M x 3 RGB 三重矩陣的形式)。
然后,您可以添加顏色條(請注意,這些是虛擬值)。
c = colorbar;
caxis([-6 6]);
set(c, 'Ticks', [-6, -4, -2, -1, 0, 1, 2, 4, 6]);
set(c, 'TickLabels', {'-\infty', '-4', '-2', '-1', '0', '1', '2', '4', '\infty'});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467373.html
上一篇:顯示總和為N的所有素數對
下一篇:MATLAB中的依賴圖
