Отрицательная ось в логарифмическом участке

Я строю график с использованием matplotlib. Мои значения варьируются от 1 до 35.

fig=plt.figure(figsize=(7,7))
fig.subplots_adjust(top=0.75, right=0.9)
ax=fig.add_subplot(111)
ax.plot(x, y, marker='o', color='black', ls='')
ax.set_xscale('log')
ax.set_yscale('log')

Я хотел бы установить оси X и Y, начиная со значений ниже 1, но если я использую

ax.axis([-10,45,-10,45])

это не работает Я знаю, что это потому, что я использую логарифмическую шкалу, но есть ли способ решить проблему с получением нужной оси?

1 ответ

Решение

Использовать 'symlog' аргумент в пользу ax.set_xscale, поскольку это линейно в небольшом интервале около нуля и логарифмически в другом месте.

Вы даже можете установить интервал, где вы хотите, чтобы ось была линейной с аргументом ключевого слова lintreshx (lintreshy за ax.set_yscale), который принимает кортеж, состоящий из предела на отрицательной и положительной стороне соответственно, т.е. lintreshx=(-lintresh,lintresh),

ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.axis([-10,45,-10,45])
Другие вопросы по тегам