Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

plot with grouping variables

Asked by Melanie on 6 Mar 2013

Hi there! I’m a beginner in working with matlab but maybe someone knows how to deal with this.

I want to plot a few selected graphs out of a matrix. I have for about 30 various doses (first column) 10 times resp (second column) with associated concentration (third column).

Therefore the concentration should be plotted semilogarithmic against time and the graphs should be grouped by the various doses. For the plot I want to select only a few graphs say dose 1 and 2 and not all the available ones. Using the command ‘gscatter' I can group my concentrations by dose but I need to plot a real graph rather than a scatter.

0 Comments

Melanie

Products

No products are associated with this question.

2 Answers

Answer by Tom Lane on 7 Mar 2013
Accepted answer

I'm not clear what you mean by a "real" graph. If you want the points connected by lines, you can specify a linestyle after using gscatter:

x = [1;2;5;9];
xx = [x;x;x];
yy = [15-x; 20-2*x; 12-.5*x];
g = [1 1 1 1 2 2 2 2 3 3 3 3];
h = gscatter(xx,yy,g)
set(h,'LineStyle','-')

0 Comments

Tom Lane
Answer by Melanie on 7 Mar 2013

Thanks Tom, this is perfectly working!!

But how can I change my y-axis into semilogarithmic? For the scatter I use the command

h=gscatter(ds.PT,ds.conc,ds.dose)

How can I specify for which dose (say 1 and 2) I want to plot the graphs? If I use the command above I have all graphs in one figure

2 Comments

Tom Lane on 7 Mar 2013
set(gca,'YScale','log') % to change y axis to log scale

For the other, you probably have to loop:

for j=1:3
  subplot(2,2,j);
  t = (g==j);
  plot(xx(t),yy(t));
  title(sprintf('group %d',j));
end
Melanie on 8 Mar 2013

Many thanks! Now it's working!

Melanie

Contact us