Я строю данные, экстент которых в х от -1000 до 1000. Но меня интересуют только значения между x = -1 и 0.
Я также хочу нанести на графиклогарифмическая шкалаНо так как значения x отрицательны, я не могу использовать xscale ("log").Я могу использовать xscale («symlog»), и это именно то поведение, которое мне нужно.
К сожалению, «symlog», похоже, не работает.Я не могу использовать аргумент linthreshx со значением меньше 2 (по умолчанию?).Но так как меня интересуют значения x от -1 до 0, я должен использовать этот аргумент и установить для него что-то вроде 1e-5 или даже меньше.
Если я установлю для linthreshx значение, меньшее 1,сюжет нарушается.Вот простой пример, взятый из В чем разница между 'log' и 'symlog'? :
import numpy
from matplotlib import pyplot
# Enable interactive mode
pyplot.ion()
# Draw the grid lines
pyplot.grid(True)
# Numbers from -50 to 50, with 0.1 as step
xdomain = numpy.arange(-50,50, 0.1)
# Plots a simple linear function 'f(x) = x'
pyplot.plot(xdomain, xdomain)
# Plots 'sin(x)'
pyplot.plot(xdomain, numpy.sin(xdomain))
pyplot.axis([-60,60,-1.5,1.5])
pyplot.xscale('symlog', linthreshx=0.1)
Запуск, который вы поймете, что я имею в виду под кривой "возвращение "... Вот результирующее изображение:
Проблема, по-видимому, заключается в том, что на оси x 0 на самом деле 10 ^ 0 = 1, а не 0. Помещение чего-то меньшего, чем1 заставит линию вернуться назад, а значения осей будут неправильными (при наведении мышью и получении значения x).
Возможно, я не использую правильный инструмент, но как добиться того, чего я хочу?Я хочу, чтобы ось х выглядела так: -10 ^ 2 -10 ^ 1 -10 ^ 0 -10 ^ -1 -10 ^ -2 -10 ^ -3 ... [до моего определенного минимального показателя] ...10 ^ -3 10 ^ -2 10 ^ -1 10 ^ 0 10 ^ 1 10 ^ 2
Спасибо