log (0) не определено. Измените
ax.set_xlim(1e2,0)
, например, на ax.set_xlim(1e2, 1e-300)
Ссылка, инвертирующая ось x, достаточно просто установить xlim для инвертирования. Так что ax.invert_xaxis()
не требуется.
См., Например, следующий фрагмент:
import pandas as pd
import matplotlib.pyplot as plt
squareroots = [(i, i**0.5) for i in range(0, 100)]
squareroot_df = pd.DataFrame(squareroots, columns=['i', 'i^0.5'])
ax = squareroot_df.plot(x='i', y='i^0.5', color='firebrick')
ax.set_xscale('log')
# ax.invert_xaxis() # not necessary
ax.set_xlim(1e2, 1e-50)
plt.show()