What you actually want to perform is an interpolation. Heat maps are used to estimate point density between observed points. When you check "Use weights from field", you are expressing that each point has a count other than 1, but the method is still estimating a point density.
Interpolation, on the other hand, estimates values at unknown points between measured points. It can be used, for example, to estimate temperatures between weather stations. Interpolations may be exact, meaning the estimate matches the observed value at known locations, or inexact, which, like a regression line, may produce an estimate which does not match the observed value at known locations. There are three widely used exact interpolation methods: Voronoi Polygons (AKA Thiessen Polygons), Inverse Distance-Weighted (IDW), and Spline.
Rather than produce a tutorial on all three methods, I'll just say that IDW is a widely used method that you should probably start with, unless you have a good reason not to. It requires the Interpolation plugin, which I believe is installed by default, but may not be enabled. If (or when) it is enabled, it can be accessed from the Raster→Interpolation→Interpolation menu. Choose "Inverse Distance Weighting (IDW)" as the Interpolation method, and set the Interpolation attribute to the point value (the field you show in the labels in your map).