Home > Back-end >  Histogram of 2D arrays and determine array which contains highest and lowest values
Histogram of 2D arrays and determine array which contains highest and lowest values

Time:05-05

I have a 2D array of shape 5 and 10. So 5 different arrays with 10 values. I am hoping to get a histogram and see which array is on the lower end versus higher end of a histogram. Hope that makes sense. I am attaching an image of an example of what I mean (labeled example).example of what i'm looking for

Looking for one histogram but the histogram is organized by the distribution of the highest and lowest of each array.

I'm having trouble doing this with Python. I tried a few ways of doing this:

# setting up 2d array
import numpy as np
from scipy import signal

np.random.seed(1234)

array_2d = np.random.random((5,20))

I thought you could maybe just plot all the histograms of each array (5 of them) like this:

for i in range(5):
    plt.hist(signal.detrend(array_2d[i,:],type='constant'),bins=20)
    plt.show()

histograms plotted of each array

And then looking to see which array's histogram is furthest to the right or left, but not sure if that makes too much sense...

Then also considered using .ravel to make the 2D array into a 1D array which makes a nice histogram. But all the values within each array are being shifted around so it's difficult to tell which array is on the lower or higher end of the histogram:

plt.hist(signal.detrend(array_2d.ravel(),type='constant'),bins=20)
plt.xticks(np.linspace(-1,1,10));

raveled array

How might I get a histogram of the 5 arrays (shape 5, 10) and get the range of the arrays with the lowest values versus array with highest values? Also please let me know if this is unclear or not possible at all too haha. Thanks!

CodePudding user response:

Maybe you could use a sns.kdeplot of 5 arrays

  • Related