Skip to content
Advertisement

Elegantly changing the color of a plot frame in matplotlib

This is a kind of follow-up question to this post, where the coloring of axes, ticks and labels was discussed. I hope it is alright to open a new, extended question for this.

Changing the color of a complete frame (ticks and axes) around a double-plot (via add_subplot) with axes [ax1, ax2] results in a lot of code. This snippet changes the color of the frame of the upper plot:

JavaScript

So for changing the frame color of two plots with two y-axes each, I would need 16(!) lines of code… This is how it looks like:

enter image description here

Other methods I dug up so far:

  • matplotlib.rc: discussed here; changes globally, not locally. I want to have some other plots in different colors. Please, no discussions about too many colors in plots… :-)

    JavaScript
  • dig out the spines of the axis, then change it: also discussed here; not really elegant, I think.

    JavaScript

Is there an elegant way of condensing the above block, something more “pythonic”?

I’m using python 2.6.5 with matplotlib 0.99.1.1 under ubuntu.

Advertisement

Answer

Refactoring your code above:

JavaScript
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement