Обеспечение соблюдения меток меток matplotlib не шире осейPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обеспечение соблюдения меток меток matplotlib не шире осей

Сообщение Anonymous »

Мне нужно построить очень компактный график с общей осью Y, используя matplotlib. Чтобы было компактно и аккуратно, у меня не будет wspace. С моими данными это выглядит хорошо.
Но метки x перекрываются, что делает их нечитаемыми.
Есть ли способ сделать галочку x локатор не размещает отметки на «краях» осей, заставляет метки корректировать размещение так, чтобы они попадали в пределы ширины осей, или заставляет их автоматически обнаруживать столкновения? Или есть лучший способ избежать столкновения меток деления x при расположении осей близко друг к другу?
Пример с коллизиями меток:

Код: Выделить всё

import matplotlib.pyplot as plt
import matplotlib.ticker
fig,axs = plt.subplots(1,2,figsize=(2,2),gridspec_kw={'wspace':0},sharey=True)
axs[0].plot([0.1,0.2,0.3],[0,2,3])
axs[0].xaxis.set_major_formatter(matplotlib.ticker.PercentFormatter(xmax=1))
axs[0].xaxis.set_tick_params(labelsize=5)
axs[0].yaxis.set_tick_params(labelsize=5)
axs[1].plot([3,2,1],[1,2,3])
axs[1].yaxis.set_tick_params(labelleft=False,size=0)
axs[1].xaxis.set_tick_params(labelsize=5)
Изображение

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

Код: Выделить всё

import matplotlib.pyplot as plt
import matplotlib.ticker
fig,axs = plt.subplots(1,2,figsize=(2,2),gridspec_kw={'wspace':0},sharey=True)
axs[0].plot([0.1,0.2,0.3],[0,2,3])
axs[0].xaxis.set_major_formatter(matplotlib.ticker.PercentFormatter(xmax=1))
axs[0].xaxis.set_tick_params(labelsize=5)
axs[0].yaxis.set_tick_params(labelsize=5)
axs[0].set_xlim(0.05,0.32)
axs[0].set_xticks([0.1,0.2,0.3])
axs[1].plot([3,2,1],[1,2,3])
axs[1].yaxis.set_tick_params(labelleft=False,size=0)
axs[1].xaxis.set_tick_params(labelsize=5)
axs[1].set_xlim(0.7,3.2)
axs[1].set_xticks([1,2,3])
Изображение



Подробнее здесь: https://stackoverflow.com/questions/791 ... n-the-axes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»