2016-10-17 39 views
1

При построении моей фигуры с plt.axis('auto') «естественными» х-тики записываются с частотой 500,питона/Matplotlib: наложен клещи с тикером частично отсутствует

enter image description here

Желая частоту 200, я использовал:

import matplotlib.ticker as ticker 

    ticks_loc = ticker.MultipleLocator(base=200) 

    fig = plt.figure('Cutlines x-axis') 
    ax = fig.add_subplot(111) 
    ... 
    plt.axis('equal') 
    ax.xaxis.set_major_locator(ticks_loc) 
    ax.yaxis.set_major_locator(ticks_loc) 
    plt.grid() 

, который дает,

enter image description here

Любопытно

  1. все клещи не представлены (клещи -1000, -800, -600 отсутствуют)
  2. plt.show() отличается от savefigplt.show() 'только' клещей -1000 и -800 отсутствуют , не -600).

Я попытался уменьшить размер шрифта (с очень маленьким) и/или путем записи по вертикали -> никакого эффекта: всегда те же самые тики отсутствуют.

Есть ли способ увидеть все тики (в горизонтальном режиме)?

+0

Я не воспроизвести это с кодом выше, используя замышляет 'х = np.linspace (-1000,1000,1000)' 'то ax.plot (x, np.sin (np.pi * x/2000.)) 'с matplotlib версии 1.4.3. Я задаюсь вопросом, является ли это ошибкой с установкой того же 'ticks_loc' для y, где диапазон данных останавливается до 400 ... Кроме того, попробуйте добавить' bbox_inches = 'tight'' для savefig в адресную точку 2. –

+0

Привет Ed: Я используя версию 1.5.1 для Matplotlib. Попытка без оси y ticks_loc У меня такие же результаты (тики отсутствуют). Может быть, ошибка. Чтобы исправить мою проблему, я использую предложение julien, приведенное выше. Спасибо за ваш ответ. – Patrick

ответ

1

Почему вы не просто использовать xticks вместо ticker

fig = plt.figure('Cutlines x-axis') 
ax = fig.add_subplot(111) 
... 
xlim = ax.get_xlim() 
plt.xticks(np.arange(xlim[0], xlim[1]+200, 200)) 
+0

Hello Julien: Вы правы, это хороший способ. Я считаю, что мы не могли бы получить xlim, соответствующий автомасштабированию. Но он отлично работает .. и легко! – Patrick