Esempio n. 1
0
 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()
Esempio n. 2
0
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()
Esempio n. 3
0
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))
Esempio n. 4
0
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()
Esempio n. 5
0
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()
Esempio n. 6
0
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)
Esempio n. 7
0
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)