#python #histogram #data-analysis
Вопрос:
Я не очень хорошо разбираюсь в программировании и занимаюсь анализом данных для лаборатории. Я пытаюсь создать гистограмму на Python с заданным количеством ячеек, каждая из которых имеет одинаковую ширину, которая теоретически должна охватывать все данные. Но, как правило, существует около 10 точек данных, которые не попадают в гистограмму. Есть ли какой-либо способ поместить эти точки данных в крайние ячейки в зависимости от того, меньше они или больше общей ширины гистограммы?
Я приношу извинения, если этот вопрос слишком прост или на него был дан ответ в другом месте, но мне, вероятно, не хватает словарного запаса, чтобы самому найти ответ.
Вот код, о котором идет речь. Я думаю, что в нем используется специальный инструментарий, созданный моим университетом, но я считаю, что он, тем не менее, понятен:
#sort out N by histogram binwidth = 2.5*sig_Q low_center = min(Q_exp) binwidth def set_range(first_bin = low_center, bin_width = binwidth, Nbins = 10): """ helper function to set the range and bin width input : first_bin = bin_center of the first bin, bin_width = the bin width, Nbins = total number of bins returns: a tuple that you can use in the range key word when defining a histogram. NOTE: for the histogram use the same number of bins: example: h = histo( r, range = set_range(-5., 1, 11), bins = 11) this created a histogram where the first bin is centered at -5. , the next at -4. etc. a total of 11 bins are created and the bin center of the last one is at 5. = first_bin (Nbins-1)*bin_width """ rmin = first_bin - bin_width/2. rmax = rmin Nbins*bin_width return (rmin,rmax) h = B.histo(Q_exp, range = set_range(low_center, bin_width = binwidth, Nbins = 10), bins = 10) hx = h.bin_center hy = h.bin_content B.pl.ylabel("Counts", fontsize = 20) B.pl.xlabel("Gaussian Deviates", fontsize = 20) B.pl.title("Monte Carlo Millikan Oil-Drop Simulation", fontsize = 22) h.plot() B.pl.show()
Лучшие,
Ответ №1:
Я, наконец, понял это. Ширина моего ящика была просто слишком мала. Как только я удлинил их и уменьшил «low_center», мои данные вышли хорошими.