数据产品经理进阶:热力图分析的底层逻辑

我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

热力图是网站、H5、APP运营的分析利器,可帮助产品经理分析用户行为。

热力图帮助我们深入了解用户在页面上的操作习惯和行为路径,并指导产品经理对产品进行用户体验优化,进而提升网站的转化效果。

而热力图分析是数据分析的重要手段之一。如何进行热力图分析,是数据产品经理工作中的重中之重。


1.了解热力图


热力图通过记录用户在网站或APP的点击与浏览行为,并通过热力图的形式展现出来。

简而言之,热力图就是将用户行为可视化展示。

热力图本质上是一个数值矩阵,图上每一个色块都是一个数值,通过离散数值、权重算法与分析模型等技术手段,将用户行为频度以色块的形式展现出来。

热力图通过可视化的效果呈现,帮助产品经理深入分析用户对内容及功能的访问情况、操作习惯、行为偏好等。


2.热力图分类


热力图就是将用户行为轨迹录像。

根据用户在网站、H5或APP上的点击、滚动等行为,可将热力图分为点击热力图、移动热力图、滚动热力图、链接热力图等。

1)点击热力图

点击热力图统计用户的点击行为,通过点击频度生成的热力图,可以直观了解用户对功能模块、页面内容的喜好。

数据产品经理进阶:热力图分析的底层逻辑

数极客点击热力图

点击热力图帮助产品经理进行首屏优化,或网站深度测试。


2)移动热力图

移动热力图记录用户鼠标移动、停留等行为,通过跟踪PC端用户的鼠标移动轨迹,可以了解用户对那个区域比较感兴趣。

数据产品经理进阶:热力图分析的底层逻辑

Google移动热力图

移动热力图帮助产品经理分析操作重点,或优化网站文案。

3)滚动热力图

滚动热力图显示了用户上下滚动页面的数据,可识别用户在页面中看到的页面比例。通过页面比例了解抵达区域留存,数值越低,越少访客关注。

数据产品经理进阶:热力图分析的底层逻辑

Hotjar滚动热力图


滚动热力图帮助产品经理了解用户行为偏好,或辅助页面设计与内容调整等。


4)链接热力图

链接热力图聚焦链接元素的点击热度,可直观地展示用户点击页面元素的点击量、点击率等。

数极客链接热力图

链接热力图帮助产品经理检查网站链接设置是否合理,或分析链接的A/B Test效果。


3.绘制 热力图


绘制热力图(heatmap)是数据分析的常用方法,常用的绘制热力图(heatmap)软件有R,Excel,MATLAB,Graphpad,Python的matplitlib、Seaborn和pyHeatMap等。

用Excel绘制热力图,可以快速了解网站和落地页数据情况,并展现数据的差异性。

Excel原始数据


Excel绘制热力图

用Python绘制热力图,通过色差、亮度来展示数据的差异,直观易理解,能快速识别高频功能。


Python原始数据

Python绘制热力图

4.热力图应用场景


热力图是把用户的交互按照热度渲染出来的一个分析能力,因其丰富的色彩变化和生动饱满的信息表达,被应用在各种数据分析场景。

热力图分析的本质是点数据分析。热力图的应用场景有:事件分析、页面分析、活跃分析、留存分析、漏斗分析、路径分析等。

对产品经理而言,主要表现在产品运营、用户运营、内容运营及渠道运营等几个方面:

  • 产品运营 :基于热力图进行功能界面、交互设计等优化,发现问题并快速迭代产品,提高着陆页转化率。


  • 用户运营: 基于热力图进行用户触点、用户路径等优化,通过运营与用户建立漏斗,降低网站的跳出率。


  • 内容运营: 基于热力图进行产品卖点、文案内容等优化,深度洞察用户点击 偏好,提 升整体用户留存率。


  • 渠道运营: 基于热力图进行广告投放、品牌宣传等优化,通过流量解决获客问题,激发渠道用户活跃度。


5.热力图案例拆解


以华创微课落地页为例,我们推荐了一些专栏作者的精选文章,为进一步了解文章的跳出率和退出率,并直观的分析用户行为轨迹,借助热力图分析就可以解决。

首先,新建热力图,设置首页需要分析的区域或内容,比如自定义圈选华创微课的Logo、热门活动和精选文章等内容。

华创微课圈选内容

然后,获取数据,基于页面埋点收集网站访问数据,网站通常关注的数据指标有新增用户数、用户留存率、PV、UV、转化率等,比如华创微课的用户数、页面浏览PV、内容点击UV等。

华创微课数据指标


最后,获取目标图像,进行高斯滤波、灰度处理、二值化、开运算,轮廓提取,计算坐标,绘制热力图等。


					
						import
						cv2
					
					
						import
						numpy as np
					
					
						import
						matplotlib
					
					
						import
						matplotlib.pyplot as plt
					
					
						from
						PIL
						import
						Image
					
					
						from pyheatmap.heatmap
						import
						HeatMap
					
				

1 获取图像


Python获取指定图像,可借助PIL库来实现,PIL(Python Imaging Library)是Python一个强大方便的图像处理库,获取图像也可借助matplotlib、opencv等库。


华创微 官网

					
						
							def
							ReadImg
							()
							:
						
					
					
						img = cv2.imread(
						'hcwk.jpg'
						,
						1
						)
					
					
						cv2.imshow(
						'1src'
						, img)
					
					
						return
						img
					
				

2)高斯滤波


Python实现高斯滤波,提取图片特征常用的方法,可以让处理后图像看起来更模糊。


华创微课 高斯滤波

					
						
							def
							GausBlur
							(src)
							:
						
					
					
						dst = cv2.GaussianBlur(src, (
						5
						,
						5
						),
						1.5
						)
					
					
						cv2.imshow(
						'2GausBlur'
						, dst)
					
					
						return
						dst
					
				

3)灰度处理

Python处理图像灰度值,是图片处理中最为重要的环节之一,包括特征提取、图像OCR、图片降噪、图片加噪等。


华创微课灰度处理

					
						
							def
							Gray_img
							(src)
							:
						
					
					gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
					
						cv2.imshow(
						'3gray'
						, gray)
					
					
						return
						gray
					
				

4)二值化

Python图像二值化,就是将图像上的像素点的灰度值设置为0或255,使得整个图像只有黑和白的视觉效果。


华创微课 二值化

					
						
							def
							threshold_img
							(src)
							:
						
					
					
						ret, binary = cv2.threshold(src,
						0
						,
						255
						, cv2.THRESH_BINARY | cv2.THRESH_TRIANGLE)
					
					
						print(
						"binaryzation value %s"
						% ret)
					
					
						cv2.imshow(
						'hcwk'
						, binary)
					
					
						return
						binary
					
				

5)开运算

Python图像开运算,就是将图像腐蚀后,进行膨胀处理,去除噪声,并保持原有形状。

华创微课 开运算

					
						
							def
							open_mor
							(src)
							:
						
					
					
						kernel = np.ones((
						5
						,
						5
						), np.uint8)
					
					opening = cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel, iterati class="code-snippet__number">3
					)
					# iterations进行3次操作
					
						cv2.imshow(
						'operation'
						, opening)
					
					
						return
						opening
					
				

6)轮廓提取并计算坐标


Python实现轮廓提取,需找到图像主题轮廓,用指定颜色对源图像进行轮廓标记,计算轮廓中的主体。


华创微课 轮廓坐标

					
						
							def
							draw_shape
							(open_img, gray_img)
							:
						
					
					contours, hierarchy = cv2.findContours(open_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
					
						cnt = contours[
						0
						]
						# 得到第一个的轮廓
					
					rect = cv2.minAreaRect(cnt)
					box = cv2.boxPoints(rect)
					box = np.int0(box)
					
						cv2.drawContours(src, [box],
						0
						, (
						0
						,
						0
						,
						255
						),
						3
						)
						# 画矩形框
					
					
					
						# 图像轮廓及中心点坐标
					
					
						M = cv2.moments(cnt)
						# 计算第一条轮廓的各阶矩,字典形式
					
					
						center_x = int(M[
						'm10'
						] / M[
						'm00'
						])
					
					
						center_y = int(M[
						'm01'
						] / M[
						'm00'
						])
					
					
						print(
						'center_x:'
						, center_x)
					
					
						print(
						'center_y:'
						, center_y)
					
				

7 )绘制热力图

Python绘制热力图,需借助pyheatmap库,将识别结果得到data的值,即data = [[x1,y1] [x2,y2] …],传入到apply_heatmap(image,data)来绘制热力图,然后将热力图加权叠加到原图上。


华创微课 热力图

					hm = HeatMap(data)
					
						hit_img = hm.heatmap(
						base
						=background, r =
						100
						)
						# background为背景图片,r是半径,默认为10
					
					
						hit_img = cv2.cvtColor(np.asarray(hit_img),cv2.COLOR_RGB2BGR)
						#Image格式转换成cv2格式
					
					overlay = image1.copy()
					
						alpha =
						0.5
						# 设置覆盖图片的透明度
					
					
						cv2.rectangle(overlay, (
						0
						,
						0
						), (image1.shape[
						1
						], image1.shape[
						0
						]), (
						255
						,
						0
						,
						0
						),
						-1
						)
						# 设置蓝色为热度图基本色蓝色
					
					
						image2 = cv2.addWeighted(overlay, alpha, image1,
						1
						-alpha,
						0
						)
						# 将背景热度图覆盖到原图
					
					
						image3 = cv2.addWeighted(hit_img, alpha, image2,
						1
						-alpha,
						0
						)
						# 将热度图覆盖到原图
					
					
						cv2.imshow(
						'ru'
						,image3)
					
					
						cv2.imwrite(
						'hcwk_heatmap.jpg'
						,image3)
					
					
						cv2.waitKey(
						0
						)
					
					
						return
						image3
					
					
					
						if
						__name__==
						'__main__'
						:
					
					
						apply_heatmap(
						'hcwk.jpg'
						,[[
						191
						,
						80
						,
						80
						],[
						296
						,
						516
						,
						150
						],[
						270
						,
						108
						,
						32
						],[
						282
						,
						169
						,
						85
						],[
						400
						,
						163
						,
						8
						],[
						320
						,
						773
						,
						26
						],[
						200
						,
						170
						,
						20
						],[
						180
						,
						336
						,
						80
						],[
						220
						,
						230
						,
						10
						],[
						280
						,
						426
						,
						10
						],[
						280
						,
						640
						,
						90
						],[
						260
						,
						430
						,
						136
						],[
						240
						,
						360
						,
						50
						],[
						50
						,
						1126
						,
						220
						]])
					
				

用热力图把用户的点击、浏览、滚屏、停留等行为数据可视化,方便我们分析用户行为,了解到用户的关注点,进而优化用户体验,提升转化率,实现精细化运营。



作者:朱学敏,华创微课CEO,7年金融产品人,畅销书《产品闭环:重新定义产品经理》作者,企业IPD咨询顾问,专注于金融行业,从0到1负责产品的全过程开发与设计。

随意打赏

提交建议
微信扫一扫,分享给好友吧。