параметры оси изменения библиотек matplotlib

Как получить контроль над настройками оси графика pyplot. Я просто сделал

    pylab.plot(*self.plot_generator(low, high))

    pylab.show()

и я получаю что я хочу!--2-->

alt text

но я хочу, чтобы ось x была в 0, а не внизу. Как мне это сделать?

3 ответов


# create some data
x = np.linspace(-np.pi,np.pi,100)
y = np.cos(2.5*x)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y, mfc='orange', mec='orange', marker='.')

# using 'spines', new in Matplotlib 1.0
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
ax.spines['left'].set_smart_bounds(True)
ax.spines['bottom'].set_smart_bounds(True)
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

ax.axhline(linewidth=2, color='blue')
ax.axvline(linewidth=2, color='blue')
show()

alt text


чтобы установить начало оси x в 0:

pylab.xlim(xmin=0)

чтобы установить начало оси y в 0:

pylab.ylim(ymin=0)

поставить одну из этих строк (или обе, если хотите) после pylab.plot звонок.


Я думаю, что это то, что вы хотите

alt text

но мой код очень грязный. Он должен быть тщательно настроен. Почему бы вам не использовать grid напрямую ?

import pylab
import numpy as np

x = np.arange(20)+300
y = x - 308

x1 = x[y>=0]
x2 = x[y<=0]
y1 = y[y>=0]
y2 = y[y<=0]


fig = pylab.figure()
fig.subplots_adjust(hspace=0.00001)
bx = pylab.subplot(212)
pylab.ylim(-12,0)
pylab.plot(x2,y2)
pylab.setp(bx.get_xticklabels(), visible=False)
ax = pylab.subplot(211,sharex=bx)
pylab.plot(x1,y1)
pylab.ylim(0,12)
pylab.setp(ax.get_xticklabels(), visible=True)
pylab.show()