I want to create an understeer plot from telemetry I have for a corner of a racing circuit. I am trying to plot 'GPS Speed' against 'Steering Angle' where group is the 'Run' (i.e WarmUp, ConstantSpeed, Endurance1 or Endurance2).
MATLAB code
The data I have is for several laps of the whole circuit so I have split it into the relevant data points for each lap. When I run the script, it does produce a scatter graph with all the data but it only displays the group of the last plot and applies the same colour to all:
Is there a way I can fix this? I wondered whether if I could import the specified columns from the csv file into a matrix first as I would then only require one gscatter plot to display everything I require.
I have created two subplots for two different data sets. I was hoping to plot subplot(2,1,2) onto subplot(2,1,1), while keeping both colourbars to display the two sets of data.
Is there an efficient way to do this? I am somewhat of a novice at using MATLAB.
So I have to plot certain data (90 sets total) and a single set looks like this.
However when I hold on and plot 90 sets superimposed, it looks just like a patch of multiple colours.
Now what would be the most optimal way to represent the plots that can let us compare them and study the difference. For example (and this is just my thought and I am open to opnions) how can I compare these 90 plots in a Matrix fashion viz.
Is there even better ways to represent such collection of plots instead of just superimposing them?
EDIT: To clear things up, I have 90 graphs that look similar to the first graph and I have to compare them in say, a single page. What would be the best way to do it? Also is subplot the best idea for 90 graphs?
Thanks.
You need subplot(), which allows you to plot multiple figures in one window.
http://www.mathworks.com/help/matlab/ref/subplot.html?requestedDomain=www.mathworks.com
I have four sets of data and I'm trying to use notBoxPlot to plot them. Unfortunately, notBoxPlot takes in only two inputs, so I'm having trouble figuring out a way to plot all 4 of them on a single graph.
I tried using "hold on" but the 2nd notBoxPlot barplots overlap the first ones.
I'm wondering if it is possible to get the same grouping behavior of bar plots into bar3.
For example, if you plot
bar(rand(3));
you get 3 bars for each point; bar groups the different y values for each x. Now I would like to do the same with a 3D data. That is that I have several slices of 2D data that I want to visualize as groups of bars. Then, if my data is
data = rand(3,3,2);
I would like to see data(1,1,:) as a group of bars, and data(1,2,:) as another group and so on.
Is it possible? I cannot find a way of achieving this.
Edit: I'm adding more details, to explain it better.
Lets said that we have two, or more, sets of data {x_(i,j)^s}. What I need is to group in the same grid position (i,j), all the sets s. In this question, they are grouping the data sets side by side, not element-wise, like this:
x1(s1) x1(s2) x1(s3) x2(s1) x2(s2) x2(s3) x3(s1) x3(s2) x3(s3)
x4(s1) x4(s2) x4(s3) x5(s1) x5(s2) x5(s3) x6(s1) x6(s2) x6(s3)
x7(s1) x7(s2) x7(s3) x8(s1) x8(s2) x8(s3) x9(s1) x9(s2) x9(s3)
I would like the bar command behavior, it tends to group when putting more than one data set. I would like to know if it is possible.
I am not sure I fully understood, but if you are looking for grouped behavior like you mention with bar(rand(3)) then you can try
figure; bar3(rand(5),'grouped');
% or maybe
figure; bar3(rand(5),'stacked');
or try to rearrange the data in data so it can work better with bar3 with reshape:
data = rand(3,3,2);
% now each data(i, j, :) will be in single row
changeddata = reshape(data , [size(data , 1)*size(data , 2) 2]);
figure; bar3(changeddata);
figure; bar3(changeddata ,'grouped');
figure; bar3(changeddata ,'stacked');
Maybe if you can give a code example for how it's supposed to look in one group, it would help to understand your question better.
If you want to group bars in 3D bar plots, but you are happy o small groups (let's say 2 or 3 bars each group) then you can simply take advantage of the Y argument in bar3:
BAR3(Y,Z,WIDTH)
so you specify the location of the two groups of bars with two shifted Y vectors.
example:
bar3(0:3:9,rand(4,4),0.3)
hold on
bar3(1:3:10,rand(4,4),0.3)
then you can edit the label the way it suits you.