Is it possible to make something like this using python ?
How should i best structure my data in order to make this map and what should i use to draw it. Code is not necessarily required. I just need some advice at this point.
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.Sign up to join this community
Your example is not a heatmap. Rather, it is a raster, probably an example of interpolation. A model has been used to give each cell in a regular grid a numerical value. These values range from high to low, and a colour scheme has been chosen to reflect this. (I can see how you can mistake this for a "heat" map.)
If you want to make something like this, putting aside all issues of modelling rigour for your particular application, you should look into spatial interpolation. That is the process of taking a series of discrete observations, like earthquake measuring stations, and interpolating a continuous surface from it. That is, you want to estimate the value of a station, where you don't actually have a station. There are various methods of interpolation you could consider.
You could consider using QGIS to both make and draw such a map.
I can't comment on how you should structure your data without knowing what data it is that you have.