## logarithmic axis when using area plots?!

### arnold (view profile)

on 28 Apr 2013

Hi,

I have plot containing two area plots:

```area(x1,y1);
hold on
area(x2,y2,'FaceColor','red');
axis auto;
```

Now I'd like to make the x-axis logarithmic via:

```set (gca, 'Xscale', 'log')
```

This creates logarithmic x-axes, however it deletes the color of the first area plot (leaving just a line plot) and messes up the range. Any suggestions on how to create a semilog area plot with two areas?

Thanks Arnold!

PS: Sorry that the Text Markup doesn't seem to work here either (or only in my view?!)

the cyclist

### the cyclist (view profile)

on 28 Apr 2013

Can you create a small example that exhibits the problem? I'm guessing your original plots goes through zero, which may cause the logarithmic axes problems.

arnold

### arnold (view profile)

on 28 Apr 2013

Here you go

```%% Example
d = 30;
x1 = 0:1:d;
y1 = exp(-0.05 * x1);
```
```x2 = d:1:100;
y2 = y1(end)*exp(-0.2*(x2-d));
```
```area(x1,y1);
hold on
area(x2,y2,'FaceColor','red');
hold off
axis auto
set (gca, 'Xscale', 'log');
```

It really seems, that the inclusion of the zero in x1 is the problem. Obviously I get why x= zero can't be displayed but since the line plot of y1 is still visible, who would have thought of that. It still seems like a bug to me, but starting at x1(2) is an option.

cheers

## Products

No products are associated with this question.

### Ingo Schalk-Schupp (view profile)

on 4 Sep 2013

The problem is that your x data contains a value of zero, the logarithm of which is undefined. There is no zero on a logarithmic axis. To avoid this, simply start your area, for instance, at an x value of 1 instead of 0:

```x1 = 1:1:d;
```

If you additionally want a logarithmic y axis, the same problem arises because by default, the painted area face goes down to zero. However, you can specify a different BaseValue like this:

```area(x2, y2, 'FaceColor', 'red', 'BaseValue', 1e0)
```

Cheers

#### Join the 15-year community celebration.

Play games and win prizes!

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