How can I recreate the plot in the picture? I just want to understand how to add multiple axes and how to scale every axis to different values.
I have created this:
clear
load carbig.mat
colors = [[0 0 0]; [0 0 0]; [1 0 0]; [0 1 0]; [1 0.5 0]; [1 0 1]; [0 0 0]; [0 0 1]];
data = [MPG Horsepower Weight Acceleration Displacement Cylinders*500];
labels = {'MPG', 'Horsepower', 'Weight', 'Acceleration', 'Displacement', 'Cylinders'};
lineobjects = parallelcoords(data, 'Labels',labels)
for i=1:length(lineobjects)
lineobjects(i).Color = colors((lineobjects(i).YData(6)/500),:)
%lineobjects(i).Color(4) = .15;
end

 Réponse acceptée

Nicole Peltier
Nicole Peltier le 18 Sep 2018

0 votes

You need to scale each parameter (MPG, Horsepower, etc.) by the maximum value of each parameter. I used repmat in my code so that the scaling could be done in a single line instead of a for-loop.
% Find maximum value for each variable
% Use repmat to allow for vectorization (faster computation)
column_max = repmat(max(data), size(data, 1), 1);
% Scale data so that max value for each variable = 1
data_scaled = data./column_max;
h = figure();
set(h,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 1 1 0; 1 0 1; 0 0 1]);
lineobjects = parallelcoords(data_scaled,'Group',Cylinders,'Labels',labels);
The code above will produce the following figure (not an exact replica of the figure you sent, but you can mess around with annotations and axis labels):
Hope this helps!

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Performance dans Centre d'aide et File Exchange

Produits

Version

R2018a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by