23

I'm trying to plot my data using matplot lib. I have 3 separetes sets of data I want to plot in 3 subplots (I'm using this is my guidence):

plt.figure()

fig, axs = plt.subplots(nrows=3, ncols = 1, sharex=False)
ax1 = axs[0]
ax1.errorbar(X,Y,Err,fmt='o')
ax1.set_xscale('log')
ax1.set_yscale('log')
ax1.set_title('epsilon=1.5, kappa = 2')
plt.show()

However I get the x range from 1 (or 0, I'm not sure) to 100 and I want to reduce it. I tried this, by adding using:

ax1.xlim(0.5,13.5)

But I get an error:

AttributeError: 'AxesSubplot' object has no attribute 'xlim'

How can I change the range then?

Community
  • 1
  • 1
Yotam
  • 10,295
  • 30
  • 88
  • 128

2 Answers2

29

You might want to use Axes.axis(*v, **kwargs):

ax1.axis(xmin=0.5,xmax=13.5)

From the documentation:

Set/Get the axis properties

If len(*v)==0, you can pass in xmin, xmax, ymin, ymax as kwargs selectively to alter just those limits without changing the others.

Community
  • 1
  • 1
Andrey Sobolev
  • 12,353
  • 3
  • 48
  • 52
13

The corresponding method of axis object is set_xlim(xmin,xmax).

tillsten
  • 14,491
  • 5
  • 32
  • 41