I've found some workaround for this issue. Not an optimal solution, but worked for me.
I am using matplotlib backend: Qt5Agg
The workaround that I found is to move the window to a specific location and then maximize it. The location to move to would be anywhere within the display that you want the figure to appear in.
fig = plt.figure()
fig.canvas.manager.window.move(0,0)
figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
plt.plot(range(10))
plt.show()
In my case, I wanted the figures to be maximized anyway, but for those who don't want that, just moving the window using this function might be enough:
fig.canvas.manager.window.move(0,0)
The coordinates (0,0) were the corner coordinates of my main display. You can manually find what are the correct ones for your setup.
You can also set both, the position and the size of the figures manually using this approach:
fig = plt.figure()
mngr = plt.get_current_fig_manager()
posX, posY, sizeX, sizeY = (0,30, 1024, 768)
mngr.window.setGeometry(posX, posY, sizeX, sizeY)
plt.plot(range(10))
plt.show()
Thank you all for your replies.
If anyone finds a better solution, please post it here.