Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to display only a left and bottom box border in matplotlib?

I'm trying to plot data in matplotlib. I would like to hide the upper and right parts of the box. Does anyone know how to do this?

Thanks for your help

like image 273
mac389 Avatar asked Mar 17 '12 14:03

mac389


People also ask

How do I shade an area in matplotlib?

You can use ax. axvspan , which apparently does exactely what you want. For better results, usa an alpha value below 0.5, and optionally set color and edge-color/width. If you want the shading to be in a different orientation (horizontal instead of vertical), there is also the ax.


2 Answers

Just set the spines (and/or ticks) to be invisible.

E.g.

import matplotlib.pyplot as plt  fig, ax = plt.subplots()  ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False)  plt.show() 

enter image description here

If you want to hide the ticks on the top and left as well, just do:

ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') 

enter image description here

like image 95
Joe Kington Avatar answered Sep 22 '22 08:09

Joe Kington


Consider also this option:

import matplotlib.pyplot as plt # Create your plot with your code # Then extract the spines and make them invisible ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.show() # Show your plot 

or just

import matplotlib.pyplot as plt # Create your plot with your code # Then extract the spines and make them invisible plt.gca().spines['right'].set_color('none') plt.gca().spines['top'].set_color('none') plt.show() # Show your plot 

Hope it helps somebody

like image 44
Ivan Avatar answered Sep 22 '22 08:09

Ivan