KeepLearning February 2016
### Plot in uitabgroup (matlab GUI)

Suppose I have 3 functions

- f(x)=2x+4
- h(x)=2x+5
- g(x)=2x+6

I have 3 uitabs which belong to each function.

When user input the x data,

```
e.g X=[1;2;3;4]
```

for each uitab, I want to see something like this:

1st uitab:

```
plot (X,2.*X+4);
```

2nd uitab:

```
plot (X,2.*X+5);
```

3rd uitab:

```
plot (X,2.*X+6);
```

My question:

How to plot the graph simultaneously to each uitab?

And how to make sure that when user change the input, the new graph will be shown and not overlap with the old one?

Thanks!!

For each tab, you will want to explicitly create an `axes`

and then specify this as the parent of the plot.

```
group = uitabgroup();
tab1 = uitab(group, 'Title', 'Tab1');
tab2 = uitab(group, 'Title', 'Tab2');
tab3 = uitab(group, 'Title', 'Tab3');
hax1 = axes('Parent', tab1);
hax2 = axes('Parent', tab2);
hax3 = axes('Parent', tab3);
plot1 = plot(X, 2.*X + 4, 'Parent', hax1);
plot2 = plot(X, 2.*X + 5, 'Parent', hax2);
plot3 = plot(X, 2.*X + 6, 'Parent', hax3);
```

Then when you alter the value of X you can explicitly update these plots

```
set(plot1, 'XData', X, 'YData', 2.*X + 4);
set(plot2, 'XData', X, 'YData', 2.*X + 5);
set(plot3, 'XData', X, 'YData', 2.*X + 6);
```

Asked in February 2016

Viewed 1,796 times

Voted 11

Answered 1 times

Viewed 1,796 times

Voted 11

Answered 1 times