Отрицательная ось в логарифмическом участке
Я строю график с использованием 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])