Мне кажется, что этот вопрос требует обходного пути, чтобы избежать преобразования данных в желаемый масштаб. Это должно быть довольно просто, применяя обратную функцию к данным перед построением графика. Тем не менее, в вопросе недостаточно информации о том, какой будет проблема для такого решения.
Поэтому можно только ответить на вопрос таким, какой он есть; это в основном приводит к созданию совершенно не связанной оси.
import numpy as np
import matplotlib.pyplot as plt
x,y = np.random.rand(2,30)
fig, ax = plt.subplots()
ax.plot(x,y, ls="", marker="+")
ax2 = ax.twiny()
ax2.set_xscale("symlog")
ax2.tick_params(axis="x", which="both", bottom=True, labelbottom=True,
top=False, labeltop=False)
ax.tick_params(axis="x", bottom=False, labelbottom=False)
ax2.set_xlim(-50,50)
plt.show()

Здесь пределы x выбраны произвольно. Проблема будет заключаться в том, чтобы связать ограничения с исходными данными. Из-за 5-процентного запаса по умолчанию с обеих сторон это, как правило, не будет тривиальным, и любая функция, выполняющая эту задачу, станет намного более сложной, чем функция, вычисляющая обратное преобразование на исходных данных.