def _city_show(self): geo = Geo("地区分布", width=1200, height=500, title_pos="center") attr, value = geo.cast(self.g.district_data) geo.add("", attr, value, visual_range=[0, 200], maptype='china', visual_text_color="#fff", symbol_size=10, is_visualmap=True) return geo.render_embed()
def get_geo(title, sub_title, addr_data): data = [] for _data in addr_data: if _data not in [u'上海', u'成都', u'西安', u'温州', u'南京', u'石家庄', u'嘉兴', u'北京', u'南昌', u'福州', u'大连', u'武汉', u'呼和浩特', u'合肥', u'南宁', u'杭州', u'贵阳', u'深圳', u'沈阳', u'重庆', u'昆明', u'哈尔滨', u'天津', u'乌鲁木齐', u'拉萨', u'海口', u'三亚', u'东莞', u'大理', u'葫芦岛', u'无锡', u'榆林', u'西昌', u'德阳', u'长沙', u'锦州', u'秦皇岛', u'珠海', u'广州', u'太原', u'银川']: print _data, continue data.append((_data, addr_data[_data]),) print ">" # print data geo = Geo(title, sub_title, title_color="#fff", title_pos="center", width=320, height=240, background_color='#404a59') attr, value = geo.cast(data) for _v in attr: print u"[%s]" % _v, print "|" geo.add("", attr, value, # type="heatmap", visual_range=[0, 10], visual_text_color="#fff", symbol_size=15, is_visualmap=True, # is_piecewise=True, # visual_split_number=6, # is_legend_show=False, ) # geo.show_config() geo.options['toolbox']['show'] = False return geo.render_embed()
def ewide4(request): # gauge = Gauge("仪表盘示例") # gauge.add("业务指标", "完成率", 66.66) # gauge.show_config() template = loader.get_template('ewpyecharts.html') data = [ ('北京', 28), ('天津', 29), ('石家庄', 29), ('太原', 34), ('呼和浩特', 27), ('哈尔滨', 31), ('长春', 29), ('沈阳', 30), ('上海', 40), ('合肥', 40), ('南京', 40), ('济南', 35), ('青岛', 33), ('杭州', 40), ('福州', 37), ('厦门', 34), ('南昌', 39), ('武汉', 38), ('长沙', 39), ('郑州', 37), ('南宁', 36), ('广州', 33), ('深圳', 28), ('珠海', 30), ('海口', 30), ('三亚', 31), ('西安', 39), ('兰州', 32), ('乌鲁木齐', 31), ('西宁', 27), ('银川', 30), ('成都', 32), ('重庆', 38), ('贵阳', 29), ('昆明', 22), ('拉萨', 23), ('香港', 30), ('澳门', 30), ] # # geo = Geo("7月23日全国主要城市最高气温", "数据源自中国天气网", title_color="#000000", title_pos="center", # width=1200, height=600, background_color='#FFFFFF') # attr, value = geo.cast(data) # geo.add("", attr, value, visual_range=[20, 40], visual_text_color="#000000", symbol_size=15, is_visualmap=True) # geo.show_config() geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59') attr, value = geo.cast(data) geo.add("", attr, value, type="heatmap", is_visualmap=True, visual_range=[0, 300], visual_text_color='#fff') # data = [ # ('汕头市', 50), ('汕尾市', 60), ('揭阳市', 35), # ('阳江市', 44), ('肇庆市', 72) # ] # geo = Geo("广东城市空气质量", "data from pm2.5", title_color="#fff", # title_pos="center", width=1200, # height=600, background_color='#404a59') # attr, value = geo.cast(data) # geo.add("", attr, value, maptype='广东', type="effectScatter", # is_random=True, effect_scale=5, is_legend_show=False) # # geo.show_config() context = dict( myechart=geo.render_embed(), host=REMOTE_HOST, script_list=geo.get_js_dependencies() ) return HttpResponse(template.render(context, request))
def get_geo(title, sub_title, addr_data): from pyecharts import Geo data = [] for _data in addr_data: if _data not in [ u'上海', u'成都', u'西安', u'温州', u'南京', u'石家庄', u'嘉兴', u'北京', u'南昌', u'福州', u'大连', u'武汉', u'呼和浩特', u'合肥', u'南宁', u'杭州', u'贵阳', u'深圳', u'沈阳', u'重庆', u'昆明', u'哈尔滨', u'天津', u'乌鲁木齐', u'拉萨', u'海口', u'三亚', u'东莞', u'大理', u'葫芦岛', u'无锡', u'榆林', u'西昌', u'德阳', u'长沙', u'锦州', u'秦皇岛', u'珠海', u'广州', u'太原', u'银川' ]: print _data, continue data.append((_data, addr_data[_data]), ) print ">" # print data geo = Geo(title, sub_title, title_color="#fff", title_pos="center", width=400, height=320, background_color='#404a59') attr, value = geo.cast(data) for _v in attr: print u"[%s]" % _v, print "|" geo.add("", attr, value, visual_range=[0, 10], visual_text_color="#fff", symbol_size=15, is_visualmap=True) # geo.show_config() return geo.render_embed()
class PlotGeo: def __init__(self): self.data = {{'label': []}, } self.titles = ['全国销售情势图', 'data from sale'] self.indexes = [] self.geo = Geo() self.script_list = self.geo.get_js_dependencies() def plot_geo(self, dat, tit, ind): self.data = dat self.titles = tit self.indexes = ind self.geo = Geo(self.titles[0], self.titles[1], title_pos='center', title_color='#fff', width=1200, height=600, background_color='#404a59') for label in self.data.keys(): self.geo.add(label, self.indexes, self.data[label], visual_range=[0, 200], visual_text_color='#fff', symbol_size=15, is_visualmap=True) return self.geo.render_embed()
def guo_report(request): # select province, difi_re_num from REPORT_REG ret = """select city, difi_re_num from REPORT_REG a, province_to_city b where a.province=b.province""" data_list = exc_sql(ret) attr = [i[0] for i in data_list] value = [i[1] for i in data_list] geo = Geo("全国各地用户注册图", width=1200, height=600) geo.add("各省注册量", attr, value, type="effectScatter", border_color="#ffffff", symbol_size=2, is_label_show=True, label_text_color="#00FF00", label_pos="inside", symbol_color="yellow", geo_normal_color="#006edd", geo_emphasis_color="#0000ff") data = {'data': geo.render_embed()} return render(request, 'guo_report.html', data)
def geo_echarts(request): if not request.session.get('is_login', None): # 如果本来就未登录,也就没有登出一说 return redirect("/login/") if request.method == 'GET': ptime = request.GET.get('time') ptype = request.GET.get('type') phour = request.GET.get('hour') client = pymongo.MongoClient('localhost', 27017) db = client['earthquake'] col = db['geo_' + ptime] lon = [] lat = [] value = [] cities = [] print(col.count()) for item in col.find(): if item['index'] < int(phour): lon.append(item['lon']) lat.append(item['lat']) cities.append(item['city']) value.append(item['value']) style = Style(title_color="#fff", title_pos="center", width=1000, height=800, background_color="#404a59") df_dic = {'lon': lon, 'lat': lat, 'city': cities, 'value': value} df = pd.DataFrame(df_dic) print(df) attr = list(df['city']) value = list(df['value']) geo_coords = { df.iloc[i]['city']: [df.iloc[i]['lat'], df.iloc[i]['lon']] for i in range(len(df)) } if ptype == "0": # normal total_geo = Geo(ptime + '地震' + str(phour) + '小时内分布图', **style.init_style) total_geo.add("", attr, value, visual_range=[1, 10], symbol_size=5, visual_text_color="#fff", is_visualmap=True, maptype='china', visual_split_number=10, geo_cities_coords=geo_coords) elif ptype == "1": # heatmap total_geo = Geo(ptime + '地震' + str(phour) + '小时内热力分布图', **style.init_style) total_geo.add("", attr, value, visual_range=[1, 10], symbol_size=5, visual_text_color="#fff", type="heatmap", is_visualmap=True, maptype='china', visual_split_number=10, geo_cities_coords=geo_coords) context = dict(myechart=total_geo.render_embed(), host=REMOTE_HOST, script_list=total_geo.get_js_dependencies()) return render(request, "function/echart_base.html", context)