How can I create a gradient of 255 line plots?
37 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am plotting many lines on a single plot but too many to manually give each line a specific color. I need to create a gradient of these lines (each line representing a different time point) to show that the lines gradually shift down. I figured out how to create a gray gradient but can't figure out how to create a color gradient. This is the command written for the gray gradient and attached an image of what it looks like. % sheet=1 DataZ=csvread(trimname,sheet) % plotsize=size(DataZ,2) Frequency=DataZ(:,1) %hours Zimpedance=DataZ(:,2:plotsize) LogZ=log10(Zimpedance) contour(LogZ) mesh(LogZ) % get(gca,'ColorOrder') N = plotsize; C = repmat(linspace(1,0.1,N).',1,3); axes('ColorOrder',C,'NextPlot','replacechildren') plot(log10(Frequency),LogZ) title('60C Harr/DI 0V PE') xlabel('Log Frequency (Hz)') ylabel('Log Z (Ohm)')
0 Kommentare
Antworten (2)
Akira Agata
am 7 Nov. 2018
I think the solution would be like this. In this example, like color changes as the y-intercept of the like decrease.
% Gradually shifting lines data
% "plot(Frequency,Data(:,k))" shows k-th line
yIntercept = 10*exp(-0.05*(1:100));
Data = repmat(linspace(2,1)',1,100);
Data = Data + yIntercept;
Frequency = linspace(1,2)';
% Set color vector
c = parula(100);
% Visualize the result
figure
hold on
for kk = 1:100
plot(Frequency,Data(:,kk),'Color',c(kk,:))
end
box on
3 Kommentare
Akira Agata
am 9 Nov. 2018
Please replace 'Set color vector' section in the above script as follows. In this case, the total number of line is assumed to 100.
% Set color vector
cStart = uisetcolor([1 0.8 0.8],'Select a start color');
cEnd = uisetcolor([0.8 0.0 0],'Select an end color');
c = interp1([1;100],[cStart;cEnd],(1:100)');
Siehe auch
Kategorien
Mehr zu Annotations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!