我想添加一些东西让我的相位画更容易理解。然而,我找不到任何东西(我找到了这个 https://se.mathworks.com/help/matlab/ref/colorspec.html https://se.mathworks.com/matlabcentral/fileexchange/11611-linear-2d-plot-with-rainbow-color https://se.mathworks.com/help/symbolic/mupad_ref/linecolortype.html )但这不是我需要的。
我真的希望看到相位线的颜色根据它是在模拟的开始还是结束而改变。
我发现这个想法看起来很棒:
我根本不明白他做了什么(代码是我想在这里写的: https://blogs.mathworks.com/pick/2008/08/15/colors-for-your-multi-line-plots/) 但如果我可以绘制一个颜色因时间而异的一行函数,那将会很棒。而且,如果在图片上,我可以在右边有一个刻度:它会很棒。
所以现在,我有:
data = readtable('test.txt');
figure('Name','Phase' , 'units','normalized','outerposition',[(8/100) (0.3- 16/100) 0.5 0.7]);
hold on
plot(data{:,2},data{:,3}, 'k.', 'LineWidth',1.5 );
plot(data{:,4},data{:,5}, 'r.', 'LineWidth',1.5 );
xL = xlim;
yL = ylim;
line([0 0], yL); %x-axis
line(xL, [0 0]); %y-axis
title(['Phase portrait'])
xlabel('f')
ylabel('f '' ')
hold off
我在.txt文件中读取函数的值,然后绘制第2 /第3列和第4/5列。第一列是时间的演变。
你有什么想法:)?
谢谢!
答案 0 :(得分:1)
说实话,有几种方法可以解决这个问题。 但是,如果您让我们知道您的时间数据是什么,它会更容易一些。 您是在x(或y)轴上绘制时间数据还是不同的附加数据集。如果它是一个额外的数据集,那么您可以将其视为z数据,绘制在Z轴上或/和颜色。 下面是一个通过制作3D绘图但以2D显示它可以做什么的示例,这允许您添加颜色条而没有太多问题。
QAbstractSocket::error()
答案 1 :(得分:1)
我发现了这一点,感谢stackoverflaw上的另一个用户。
data = readtable('4ressorspendule.txt');
n = numel(data.Var1);
c = size(data,2);
figure('Name','Phase' , 'units','normalized','outerposition',[(8/100) (0.3 - 16/100) 0.5 0.7]);
for i=1:n
hold on
plot(data{i,2},data{i,3},'.','Color',[1 (1-i/n) 0] ,'MarkerSize',4);
plot(data{i,4},data{i,5},'.','Color',[0 (i/n) (1-i/n)],'MarkerSize',4);
end
xL = xlim;
yL = ylim;
line([0 0], yL); %x-axis
line(xL, [0 0]); %y-axis
title(['Phase portrait'])
xlabel('f')
ylabel('f '' ')
hold off