5

How do I add a gradient facecolor to my bar plots? I want to know how to use simple one-color gradients to complex multicolor gradients. Here is some example code:

import numpy as np
import matplotlib.pyplot as plt

plt.figure(figsize=(1,5))
plt.axis([0,1,-50,200])
plt.xticks([])
plt.yticks([-40,180])
plt.bar(left=0, width=1, bottom=-40, height=220, color='r')
plt.subplots_adjust(left=0.4, right=0.8)
plt.savefig("test.png")
Kit
  • 30,365
  • 39
  • 105
  • 149

1 Answers1

7
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

# http://matplotlib.sourceforge.net/examples/api/colorbar_only.html

fig=plt.figure(figsize=(1,5))
ax=fig.add_subplot(111)
ax.axis([0,1,-50,200])
cmap = mpl.cm.jet
norm = mpl.colors.Normalize(vmin=-40, vmax=180)
cb1 = mpl.colorbar.ColorbarBase(ax, cmap=cmap,
                                orientation='vertical',                                
                                norm=norm,
                                ticks=[-40,180]
                                )

plt.subplots_adjust(left=0.4, right=0.8)
plt.show()

enter image description here

unutbu
  • 842,883
  • 184
  • 1,785
  • 1,677
  • 3
    this doesn't seem to be a facecolor? as in `set_facecolor in module matplotlib.axes._base`, I was expecting (from googling) some example of setting mpl facecolor. I'm not sure whether the OP wanted this or not given the code that's there (given they accepted this answer, perhaps they were after something different to me) – baxx Apr 14 '20 at 00:22