Matplotlib — установка позиций тиков на определенном подзаголовке

#python #matplotlib #plot

#python #matplotlib #график

Вопрос:

Я пытаюсь сделать что-то вроде этого:

 vol_grid = MultipleLocator(1000)
fig_vol = plt.subplot2grid((count, count), (i, 0), rowspan=1, colspan=count)
fig_vol.yaxis.set_major_locator(vol_grid)
  

но это не имеет никакого эффекта. Есть идеи?

Мое намерение состоит в том, чтобы установить метки по оси y на расстоянии 1000 единиц друг от друга, т. Е. иметь метки на уровне 1000, 2000, 3000 и т.д.

Комментарии:

1. fig_vol.set_yticks([1000, 2000, 3000, ...]) должно сработать…

2. Я бы с удовольствием попробовал это, но теперь внезапно я начал получать что-то вроде /usr/lib64/python2.7/site-packages/matplotlib/font_manager.py:1224: Предупреждение пользователя: findfont: Семейство шрифтов [‘monospace’] не найдено. Возврат к битовому потоку Vera Sans (prop.get_family(), self.defaultFamily[fontext])) /usr/lib/python2.7/site-packages/IPython/core/formatters.py:239: Предупреждение форматера: Исключение в программе форматирования изображений / png: Локатор пытается сгенерировать 20001 тиков от 0.0 до 100.0: превышает локатор. Предупреждение о формате MAXTICKS даже без изменения кода. Есть идеи?

3. к сожалению, я не знаю … вероятно, что-то изменилось

Ответ №1:

Вы ничего не нанесли на график, и именно поэтому метки тиков не отображаются (значение по ylim умолчанию равно (0,1) , вы можете установить vol_grid = MultipleLocator(0.1) , чтобы увидеть это)

 from matplotlib.ticker import MultipleLocator
import matplotlib.pyplot as plt
vol_grid = MultipleLocator(1000)
fig_vol = plt.subplot2grid((2, 2), (0, 0), rowspan=1, colspan=2)
fig_vol.yaxis.set_major_locator(vol_grid)
  

введите описание изображения здесь

Мы можем изменить ylim или просто вывести некоторые данные:

 fig_vol.set_ylim(1000, 9000)
#plt.plot([1,2,3], [1000, 2000, 5000])
  

введите описание изображения здесь