Python Forum
How to fit a 2D histogram like in ROOT?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to fit a 2D histogram like in ROOT?
#3
(Aug-05-2019, 11:54 PM)scidam Wrote:
(Aug-05-2019, 07:35 PM)Zandar Wrote: Specifically, I can't figure out how to fit 2D histograms.
Is this about computing probability density estimations, e.g. using kernel approaches?


Consider seaborn package. Also, take a look at Scipy. These functions can be used to get smooth pdf-estimations by sample data.

Thanks for the reply! It's about getting parameters in order to normalise the distributions to each other; so, for the above graph, running the x-axis parameter (nMIP) through an equation in order to make the graph a straight line. For instance, here's a plot I made doing that with a Keras/TensorFlow machine learning algorithm (very simple one; I'm still learning):

[Image: XLiyRLD2r0z6Rs9apUtT2yUUwJNGkWp-asbyhiNr...97-h953-no]

I've also used Seaborn a bit for plotting, but I'm having trouble using it for the functionality mentioned.

I'll show what I'm trying to do with ROOT plots for clarity. Here's a plot of the distribution, fitted with an order 3 polynomial:

[Image: BQnkVSQvT5gRs1pvGZ09GBvyO0n-JWoiTA7rviBl...41-h639-no]

I can get the parameters of the polynomial fit and then simply redraw the histogram, but instead of nMIP I use p0+p1*nMIP+p2*nMIP^2+p3*nMIP^3, which gives this:

[Image: xUeR3Gci7BuKshSPGwkwidRJHIafa_zVA8EiIb_Y...33-h638-no]

The fit is done on the first histogram as outlined in the OP. I've played around with Seaborn a bit and it seems like a very powerful tool (as well as scipy curve_fit), but I can't find out how to use them for fitting 2D histograms. I can pull out information, which is I think what you're referring to with probability density estimations, but I can't actually fit to a function like this. It's very possible that I simply don't know how to use kernel approaches to do this (I'm not familiar with that concept; I've done a ton of math so far for this degree path, but not a lot of coding).

Thanks for the feedback!

And just because we all like pretty plots, here's using seaborn to plot the ML graph as a kde with jet colours:

[Image: 9-EGb20go1X1NRpPtJ30WT9skL60Sv4lpeUHPTlE...00-h796-no]

Python really is a step up in display and simplicity vs ROOT.
Reply


Messages In This Thread
How to fit a 2D histogram like in ROOT? - by Zandar - Aug-05-2019, 07:35 PM
RE: How to fit a 2D histogram like in ROOT? - by Zandar - Aug-06-2019, 03:01 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  histogram error alyssaantarctica 1 3,775 Jul-09-2018, 10:46 PM
Last Post: Larz60+
  Plot Probability Density of an Histogram Python_TLS 1 2,896 Jun-28-2018, 06:19 AM
Last Post: scidam
  histogram with matplotlib vaugirard 10 6,260 Jun-01-2018, 04:13 AM
Last Post: vaugirard
  Help creating a histogram using an array rubadub 0 2,193 Apr-17-2018, 08:57 PM
Last Post: rubadub
  Histogram help dandatadan 1 2,564 Nov-25-2017, 06:07 AM
Last Post: heiner55
  mcerp: error while plotting a histogram rakhmadiev 2 4,552 Apr-02-2017, 09:08 PM
Last Post: rakhmadiev
  plotting histogram vvv 1 3,310 Mar-10-2017, 11:47 PM
Last Post: zivoni

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020