LINUX.ORG.RU

не удается изменить число тиков по оси X

 ,


0

1

Вот мой код:

def draw_sig_whx(text, data, x, width, height):
	import matplotlib.ticker
	f = pylab.figure()
	f.hold(False)
	sz = len(data)
	sub = f.add_subplot(1, 1, 1)
	f.set_size_inches(width, height)
	locator = matplotlib.ticker.LinearLocator(30)
	sub.xaxis.set_major_locator(locator)
	sub.plot(x, data, clip_on = False)
	sub.grid()
	f.savefig(text + ".jpg", dpi = 300)
Отображается лишь 6 тиков на оси X, хотя график очень широкий (width = 80.0, height = 6.0).

Например тут нашел http://jenyay.net/Matplotlib/Locators что можно использовать некий LinearLocator чтобы сделать больше засечек горизонтальной оси на графике. До этого пробовал всякие set_xticks и прочее. Всё выполняется без ошибок и варнингов, а тиков по-прежнему 6, это мало, не удобно читать график...

★★★★★

Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

Елки иголки, оказывается надо просто делать так:

def draw_sig_whx(text, data, x, width, height):
	import matplotlib.ticker
	f = pylab.figure()
	f.hold(False)
	sz = len(data)
	sub = f.add_subplot(1, 1, 1)
	f.set_size_inches(width, height)
	sub.plot(x, data, clip_on = False)
	locator = matplotlib.ticker.LinearLocator(30)
	sub.xaxis.set_major_locator(locator)
	sub.grid()
	f.savefig(text + ".jpg", dpi = 300)
т.е. сначала вызвать plot и уже только потом настраивать его параметры. Как-то странно, вроде сначала ставишь настройки а потом оно строится, видимо надо сначала сделать предмет для настройки при помощи plot, а только потом настраивать как оно будет отображаться.

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Я делал с set_xticks

...
s1.plot(x, y)
...
x_ticks_num = 5
x_min, x_max = s1.get_xlim()
s1.set_xticks([(v * (x_max-x_min)/x_ticks_num) for v in range(0, x_ticks_num+1)])

Но судя по всему с LinearLocator проще получается

alx777 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.