Search code examples
pythonmatplotlibgraphaxes

Python implementation of non uniform (non linear) x-axis in matplotlib


I am trying to have a non linear x - axis in Python using matplotlib and haven't found any functions or hack arounds to this problem.

This is how our graph looks at this point of time and I want to convert it to something like this. (Look at the difference in x axes of both graphs)

The code I have as of now is:

plt.axis([0, 100, 0, 1])
plt.plot(onecsma_x, onecsma_y, label='1-CSMA')
plt.plot(slotted_aloha_x,slotted_aloha_y, label ='Slotted Aloha')
plt.plot(pure_aloha_x,pure_aloha_y, label ='Pure Aloha')
plt.plot(npcsma_x, npcsma_y, label ='Non persisten CSMA')
plt.plot(pcsma_x, pcsma_y, label ='P persistent CSMA')
plt.legend(loc='upper right')
plt.show()

Solution

  • For log x-axis use semilogx instead of plot.

    Also you could limit the x-axis maybe after using semilogx (but before show) with:

    plt.xlim(0, 10**2)