2015-10-10 3 views
0

Иногда при построении очень малых отклонений в matplotlib, скажем, малых отклонениях от 1, matplotlib автоматически делает отметки, помеченные вокруг 0, а затем записывает «+1» вверх в левый угол. Обычно это будет даже делать что-то хуже, и вычитать что-то вроде 0,999 от клещей вместо 1. Например, следующий кодMatplotlib вычитает значения из тиков при построении

import pylab as pl 
import numpy as np 

x=np.linspace(-10,10,100) 
pl.plot(x,1+1e-4*np.sin(x)) 
pl.savefig('test.pdf') 
pl.show() 

производит следующий участок. enter image description here

Как отключить/управлять этой функцией?

То, что я в конечном счете хочу, чтобы клещи отметить только 1, поэтому я добавил команду

pl.gca().set_yticks([1]) 

который дает следующий смешной сюжет enter image description here вместо того чтобы показывать только 1 в середине слева ось. Как это исправить?

(извиняется за плохой титул, не знал, что писать)

+0

Я пометил свой вопрос как дубликат, а не увольнять его, а лишь подчеркнуть избыточность. Более ранний вопрос получил хорошие и полные ответы, которые вы можете найти ценными. –

ответ

0

Как обсуждалось ранее here, вы могли бы принести расположение этикетки от yticks добавить смещение вы хотите, и «вручную» добавить свое значение в верхний левый угол.

import pylab as pl 
import numpy as np 

offset = 1 

x=np.linspace(-10,10,100) 

pl.plot(x,1+1e-4*np.sin(x)) 

locs,labels = yticks() 
yticks(locs, map(lambda y: "%g" % y, locs - offset)) 
text(0.0, 1.01, "+%g" % offset, fontsize=10, transform = gca().transAxes) 

pl.show() 

enter image description here

Смежные вопросы