本文共 2271 字,大约阅读时间需要 7 分钟。
在做GEO-Heatmap时是不是遇到过如下情况:
# 新建GEO实例geo = Geo( init_opts=opts.InitOpts( theme='light', width='980px', height='800px' ))data_pair = []for idx, data_item in enumerate(data): geo.add_coordinate(idx, data_item[0], data_item[1]) data_pair.append([idx, data_item[2]]) geo.add_schema( maptype="world")geo.add( '', data_pair, type_='heatmap', is_large=True, label_opts=opts.LabelOpts(is_show=False), tooltip_opts=opts.TooltipOpts(is_show=False),)geo.set_global_opts( title_opts=opts.TitleOpts( title="全球人口热力图", pos_top='3%', pos_left='center', title_textstyle_opts=opts.TextStyleOpts(color='#00BFFF', font_size=20) ), visualmap_opts=opts.VisualMapOpts( is_show=False, range_color=['blue', 'blue', 'green', 'yellow', 'red'] ),)geo.render_notebook()热力图区域都连接成了一大块,想通过
VisualMap
的min_
和max_
参数来调,效果也不明显。 在Geo.add()
方法中有两个参数:
在热力图绘制的过程中,是根据每个point内的值大小选择渲染的颜色,在热力区域混为一团的时候,我们可以尝试将point_size
和blur_size
调小一些,在pyecharts中这两个值的默认值都是20。
来看一下调整后的效果:
import requestsfrom pyecharts.charts import *from pyecharts import options as optsfrom pyecharts.commons.utils import JsCodeURL = 'https://cdn.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/data-gl/asset/data/population.json'data = requests.get(URL).json()# 新建GEO实例geo = Geo( init_opts=opts.InitOpts( theme='light', width='980px', height='800px' ))data_pair = []for idx, data_item in enumerate(data): geo.add_coordinate(idx, data_item[0], data_item[1]) data_pair.append([idx, data_item[2]]) geo.add_schema( maptype="world", zoom=1.2,)geo.add( '', data_pair, type_='heatmap', is_large=True, blur_size=1, point_size=2, label_opts=opts.LabelOpts(is_show=False), tooltip_opts=opts.TooltipOpts(is_show=False),)geo.set_global_opts( title_opts=opts.TitleOpts( title="全球人口热力图", pos_top='3%', pos_left='center', title_textstyle_opts=opts.TextStyleOpts(color='#00BFFF', font_size=20) ), visualmap_opts=opts.VisualMapOpts( is_show=False, max_=300, precision=1, series_index=0, range_color=['blue', 'blue', 'green', 'yellow', 'red'] ),)geo.render_notebook()
转载地址:http://beqnn.baihongyu.com/