Weird histogram behavior when using range argument : I want to compare distributions of values in two arrays, but the histogram display changes when I specify range argument:

    def plot_compare(values1, values2, bins=100, range=None):
        fig = plt.figure(figsize=(8,6))
        ax = fig.add_subplot(111) 
        ax.hist(values1.ravel(), alpha=0.5, bins=bins, range=range, color= 'b', label='1')
        ax.hist(values2.ravel(), alpha=0.5, bins=bins, range=range, color= 'r', label='2')
        ax.legend(loc='upper right', prop={'size':14})
        plt.show()


    plot_compare(a1, a2)

[![enter image description here][1]][1]

    plot_compare(a1, a2, range=(-1200, 300))

[![enter image description here][2]][2]

What's happening, and how do I make the proper comparison? My goal is to get a visual clue of how the values are different in two arrays. 

  [1]: https://i.stack.imgur.com/wheqa.png
  [2]: https://i.stack.imgur.com/sx5Xn.png