# Plotting a bar graph with a large x-axis

41 views (last 30 days)

Show older comments

I'm trying to plot a bar graph with a very large x-axis. When I do this, it makes my data at the end close to zero look very skinny. Below is what I want it to look like (graph taken from TestLab) and what Im getting in matlab. Is there a way to shrink the x-axis to only the values I need?

Thank you in advance.

##### 4 Comments

Rik
on 27 Mar 2020

Mohammad Sami
on 27 Mar 2020

### Answers (1)

Ajay Pattassery
on 7 May 2020

Edited: Ajay Pattassery
on 7 May 2020

Here assume you are plotting the bar plot with x and y as defined below.

x = [1 100 100000];

y = [1 2 4];

bar(x,y)

You will get an output similar to the one you have got above due to the huge scale of the x-axis.

For that, define x as just integers from 1 to number of elements in your x values. Then using xticklabels, define the tick labels.

xModified = 1:length(x)

bar(xModified,y)

xticklabels(gca,{'1','100','100000'});

Alternatively, You can use a logarithemic scale on the x axis and then use xticks and xlabels to label the x axis. This makes bar to be placed at the relative location with respect to the x value.

y = [1 2 4];

x = [1 100 100000];

bar(log(x),y);

xticks(log(x))

xticklabels([{'1'},{'100'},{'1000000'}])

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!