100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 项目07城市餐饮店铺选址分析

项目07城市餐饮店铺选址分析

时间:2022-11-02 08:46:14

相关推荐

项目07城市餐饮店铺选址分析

问题

【项目07】 城市餐饮店铺选址分析

1、从三个维度“口味”、“人均消费”、“性价比”对不同菜系进行比较,并筛选出可开店铺的餐饮类型

要求:

① 计算出三个维度的指标得分

② 评价方法:

口味 → 得分越高越好

性价比 → 得分越高越好

人均消费 → 价格适中即可

③ 制作散点图,x轴为“人均消费”,y轴为“性价比得分”,点的大小为“口味得分”

绘制柱状图,分别显示“口味得分”、“性价比得分”

建议用bokeh做图

提示:

① 数据清洗,清除空值、为0的数据

② 口味指标计算方法 → 口味评分字段,按照餐饮类别分组算均值,再做标准化处理

③ 人均消费指标计算方法 → 人均消费字段,按照餐饮类别分组算均值,再做标准化处理

④ 性价比指标计算方法 → 性价比 = (口味 + 环境 + 服务)/人均消费,按照餐饮类别分组算均值,再做标准化处理

⑤ 数据计算之前,检查一下数据分布,去除异常值(以外限为标准)这里排除了高端奢侈餐饮的数据干扰

⑥ 注意,这里先分别计算三个指标,再合并数据(merge)作图,目的是指标之间的噪音数据不相互影响

答案

1

# -*- coding: utf-8 -*-"""Created on Tue Jul 23 11:03:15 @author: HASEE"""import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings('ignore')from bokeh.plotting import figure,show,output_filefrom bokeh.models import ColumnDataSource'''(1) 加载数据'''import osos.chdir(r'E:\软件自学\数据分析--网易微专业\【非常重要】Python数据分析师微专业_项目资料\项目07城市餐饮店铺选址分析')df1 = pd.read_excel('上海餐饮数据.xlsx',sheetname=0)'''(2) 筛选数据,只留['类别','口味','环境','服务','人均消费'],并删除null和0,得到data1'''data1=df1[['类别','口味','环境','服务','人均消费']]data1.dropna(inplace=True)#发现数据的特点,人均消费为0的数据包含了前三个字段 口味 环境 服务 =0的所有情况 #所有只用bool索引令‘人均消费’>0即可data1=data1[(data1['人均消费']>0)]'''(3) 给data1添加字段‘性价比’''' data1['性价比']=(data1['口味']+data1['环境']+data1['服务'])/data1['人均消费']'''(4) 创建箱形图函数box 用于观察'口味','人均消费','性价比'三个字段各自的异常值'''def box():fig,axes=plt.subplots(1,3,figsize=(10,4))data1.boxplot(column=['口味'],ax=axes[0])data1.boxplot(column=['人均消费'],ax=axes[1])data1.boxplot(column=['性价比'],ax=axes[2])box()'''(5) 创建清洗函数clear 用于清洗'口味','人均消费','性价比'三个字段各自的异常值(大于外限的数据视为异常值)注意:三个字段的异常值不是统一的,即口味的异常数据,性价比不一定异常,所以三列要分开清洗'''def clear(data ,col):q1 = data[col].quantile(q=0.25)q3 = data[col].quantile(q=0.75) iqr = q3-q1t1 = q1-3*iqrt2 = q3+3*iqrreturn(data[(data[col]>t1) & (data[col]<t2)][['类别',col]])data_taste = clear(data1,'口味')data_expend = clear(data1,'人均消费')data_ratio = clear(data1,'性价比')'''(6) 创建分组标准化函数gpstd 用于将数据按照类别分类,求出每个类别‘口味','人均消费','性价比'三个字段的平均值并对三个字段的平均值进行0-1标准化'''def gpstd(data,col):data_gp = data.groupby('类别').mean()data_gp[col+'_norm']=(data_gp[col]-data_gp[col].min())/(data_gp[col].max()-data_gp[col].min())#对结果按照col_norm由大到排序data_gp.sort_values(by =col+'_norm',inplace=True,ascending=False)return data_gpdata_taste_score = gpstd(data_taste,'口味')data_expend_score = gpstd(data_expend,'人均消费')data_ratio_score = gpstd(data_ratio,'性价比')'''(7) 将三个df合并成一个得到最终data_final'''data_final = pd.merge(data_taste_score,data_expend_score,left_index=True,right_index=True)data_final = pd.merge(data_final,data_expend_score,left_index=True,right_index=True)''' (8) 针对data_final bokeh画图分析 '''#注意bokeh作图变量名不支持中文,先做预处理将data_final的name和columns变成Englishdata_final.index.name = 'type'data_final.columns = ['taste','taste_norm','expend','expend_norm','ratio','ratio_norm']#添加circle大小--size字段:口味*40(40倍放大,否则circle太小)#注 必须在df中修改 如果改编为columdatasource就无法修改了data_final['size']=40*data_final['taste_norm']#导入绘图需要的库from bokeh.models import ColumnDataSource #导入columndatasourcefrom bokeh.plotting import figure,show,output_filefrom bokeh.layouts import gridplot #多图联动顶层框架gridplotfrom bokeh.models import HoverTool #自定义鼠标跟随提示信息from bokeh.models.annotations import BoxAnnotation #画矩形区间#调用output_file函数填写bokeh生成html位置 默认root_dir为当前project的位置即之前 chdir的位置#output_file(filename, title="Bokeh Plot", mode="cdn", root_dir=None)output_file('project7.html')#创建columndatasourcesource = ColumnDataSource(data_final)#自定义hover @代表从source中取值 #代表自动计算hover = HoverTool(tooltips=[('餐饮类型','@type'),('人均消费','@expend'),('性价比得分','@ratio_norm'),('口味得分','@taste_norm')])#散点图 fig1 = figure(plot_width = 800,plot_height = 300,title='三指标得分',x_axis_label='人均消费',y_axis_label='性价比得分',tools=[hover,'box_select,reset,xwheel_zoom,pan,crosshair,save']#方框选择 重置 x轴滚轮放缩 直接移动 十字光标 存储)#x轴:人均消费 y轴:性价比 fig1.circle(x='expend',y= 'ratio_norm',source=source,line_color='black',line_dash=[6,4], #调整实线、虚线长度比例fill_color = 'red',fill_alpha=0.6,size='size')#画expand 40-80 即价格适中区间矩形,方便可视化筛选数据price_mid_box=BoxAnnotation(left = 40, right = 80, fill_alpha =0.1,fill_color = 'navy')fig1.add_layout(price_mid_box)fig1.title.text_font_style = "bold"fig1.ygrid.grid_line_dash = [6, 4]fig1.xgrid.grid_line_dash = [6, 4]#柱状图1 x=type y=taste_norm#1餐饮类别提取为lst 2传入xrange才能使得x轴坐标为type文字data_type=data_final.index.tolist()fig2 = figure(plot_width =800 ,plot_height =300,title ='口味得分', x_range=data_type)fig2.vbar(x='type' ,top ='taste_norm',source=source,width = 0.8,alpha = 0.7,color='green')#柱状图2 x=type y=expend_norm#1餐饮类别提取为lst 2传入xrange才能使得x轴坐标为type文字fig3 = figure(plot_width =800 ,plot_height =300,title ='口味得分', x_range=data_type)fig3.vbar(x='type' ,top ='expend_norm',source=source,width = 0.8,alpha = 0.7,color='red')#将三张图通过gridplot顶层联动 类似ndarray写法 单层括号【a,b,c】则a,b,c三张图横向连接#双层括号[[a],[b],[c]]则三张图纵向连接p = gridplot([[fig1],[fig2],[fig3]])show(p)

[外链图片转存失败(img-5veBtGKX-1566141966121)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566141395853.png)]

问题

2、选择一个餐饮类型,在qgis中做将上海划分成格网空间,结合python辅助做空间指标评价,得到餐饮选址位置

课程这里以“素菜馆为例”

课程数据

① net_population.shp → 投影坐标系,上海1km²格网内的人口密度数据

② road.shp → 投影坐标西,上海道路数据

要求:

① 通过空间分析,分别计算每个格网内的几个指标:人口密度指标、道路密度指标、餐饮热度指标、同类竞品指标

② 评价方法:

人口密度指标 → 得分越高越好

道路密度指标 → 得分越高越好

餐饮热度指标 → 得分越高越好

同类竞品指标 → 得分越低越好

综合指标 = 人口密度指标0.4 + 餐饮热度指标0.3 + 道路密度指标0.2 +同类竞品指标0.1

③ 最后得到较好选址的网格位置的中心坐标,以及所属区域 可以用bokeh制作散点图

提示:

① 道路密度指标计算方法 → 网格内道路长度

② 餐饮热度指标计算方法 → 网格内餐饮poi计数

③ 同类竞品指标计算方法 → 网格内素菜馆poi计数

④ 餐饮poi数据记得投影

⑤ 可以以“net_population.shp”为网格基础数据,做空间统计

⑥ 在qgis做空间统计之后,网格数据导出点数据,投影成wgs84地理坐标系,导出excel数据,在python做指标标准化等

⑦ 在bokeh中做散点图时,注意添加一个size字段,通过最终评分来赋值

⑧ 在bokeh中做散点图时,可以给TOP10的点用颜色区分

答案

2

注:所有图层和项目坐标系要统一,此处都为投影坐标系

2.1人口密度指标 → 得分越高越好(数据已给出,直接得到结果)

[外链图片转存失败(img-LOvrYbyk-1566141966122)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1564195365591.png)]

2.2 道路密度指标 → 得分越高越好(每个网格内线路总长度)

[外链图片转存失败(img-fK5u8EsI-1566141966123)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1564195842847.png)]

**[外链图片转存失败(img-Oj40xBhG-1566141966123)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1564195646447.png)]

2.3 重要的是得到以下两个参数,具体过程 1将数据导出为csv 2加载到qgis中 3用qgis进行计数

② 餐饮热度指标计算方法 → 网格内餐饮poi计数

③ 同类竞品指标计算方法 → 网格内素菜馆poi计数

2.3.1 数据另存为csv

[外链图片转存失败(img-qvsb7biW-1566141966123)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566132591074.png)]

2.3.2将csv数据添加到qgis中

注意选横纵坐标为经纬度,并且由于数据的经纬度为wgs84地理坐标系,所以加载时图层要使用wgs84,然后再将该图层按照投影坐标系导出,那么新图层的坐标内容就被转化为投影后的值了

[外链图片转存失败(img-n32BMaPZ-1566141966123)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566133496647.png)]

右键上海市餐饮数据图层–导出–另存要素为–shp文件–记得再文件名称中选好路径 参考系为投影坐标系

[外链图片转存失败(img-v1gtNDlS-1566141966124)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566133792653.png)]

2.3.3 通过计算多边形内点的个数统计餐饮热度指标

注意

1多边形图层选择线条长度 因为该图层有人口指标z 还要刚才统计好的道路长度指标length 新产生的餐饮热度指标cy_count 继续添加该图层的属性表中

2记得要在文件名称中选好路径 保存为shp文件

[外链图片转存失败(img-Mbeyu2eW-1566141966124)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566134251180.png)]

2.3.4筛选素菜的数据统计同类竞品指标

2.3.4.1打开cy_ty的属性表–使用表达式选择要素

注意字段和值中可以找到‘类别’,点击all unique可以显示所有的‘’类别条目 在里面找到素菜即可

[外链图片转存失败(img-9ktjKyal-1566141966124)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566135553146.png)]

2.3.4.2注意选择后要在属性表左下方点击显示选中要素进行查看

[外链图片转存失败(img-byX7Tjo0-1566141966124)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566135819846.png)]

2.3.4.3将这些选择的数据导出为新的shp文件 sc

注意 右键cy_ty图层 --导出–另存选中要素为(一定是选中要素!!!)

[外链图片转存失败(img-iieXHRo1-1566141966125)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566136058361.png)]

2.3.4.4矢量–分析工具–计算多边形内点

多边形要使用计数(就是刚才计算过餐饮count的图层)

[外链图片转存失败(img-6DWNExyU-1566141966125)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566137162162.png)]

查看执行完成的计数2图层 发现此图层已经有 人口密度 道路长度 餐饮密度 素材密度四个指标

[外链图片转存失败(img-gsyLjAj6-1566141966125)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566137270000.png)]

2.3.5给每一个网格添加质心 从而给每个方格添加经纬度坐标(注意此步骤要将图层另存为wgs84)

2.3.5.1将计数2属性表中Count字段(方格内道路数量)删去

首先将属性表变成编辑模式 然后删除Count字段

[外链图片转存失败(img-LkWuXGLU-1566141966126)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566137555993.png)]

2.3.5.2 将计数2图层导出为wgs84坐标系,并命名为result

[外链图片转存失败(img-O43yM0gp-1566141966126)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566137664124.png)]

2.3.5.3 为网格添加质心并另存为shp result_zx

矢量–几何工具–质心

[外链图片转存失败(img-sZHg8K93-1566141966126)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566137953124.png)]

2.3.5.4 为result_zx(质心)图层添加经纬度

打开属性表–字段计算器

注 $x $y在几何图形中

[外链图片转存失败(img-UtBK90zk-1566141966127)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566138111229.png)]

[外链图片转存失败(img-cSyQFHTK-1566141966127)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566138197176.png)]

至此属性表得到最终的gis结果 z为人口密度 length为道路密度 cy_count为餐饮密度 sc_count为素菜馆密度 lng lat为经纬度

[外链图片转存失败(img-K05Nt2WV-1566141966127)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566138239194.png)]

全选后粘贴进excel 保存为 data2

[外链图片转存失败(img-Q1MXhtVt-1566141966128)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566138454162.png)]

第一列 无意义 可以删掉

2.4由此再次进入python 对data2数据进行标准化以及绘图

-- coding: utf-8 --

“”"

Created on Sun Aug 18 22:59:51

@author: HASEE

“”"

‘’’

2、选择一个餐饮类型,在qgis中做将上海划分成格网空间,结合python辅助做空间指标评价,得到餐饮选址位置

课程这里以“素菜馆为例”

课程数据

① net_population.shp → 投影坐标系,上海1km²格网内的人口密度数据

② road.shp → 投影坐标西,上海道路数据

要求:

① 通过空间分析,分别计算每个格网内的几个指标:人口密度指标、道路密度指标、餐饮热度指标、同类竞品指标

② 评价方法:

人口密度指标 → 得分越高越好

道路密度指标 → 得分越高越好

餐饮热度指标 → 得分越高越好

同类竞品指标 → 得分越低越好

综合指标 = 人口密度指标0.4 + 餐饮热度指标0.3 + 道路密度指标0.2 +同类竞品指标0.1

③ 最后得到较好选址的网格位置的中心坐标,以及所属区域 可以用bokeh制作散点图

提示:

① 道路密度指标计算方法 → 网格内道路长度

② 餐饮热度指标计算方法 → 网格内餐饮poi计数

③ 同类竞品指标计算方法 → 网格内素菜馆poi计数

④ 餐饮poi数据记得投影

⑤ 可以以“net_population.shp”为网格基础数据,做空间统计

⑥ 在qgis做空间统计之后,网格数据导出点数据,投影成wgs84地理坐标系,导出excel数据,在python做指标标准化等

⑦ 在bokeh中做散点图时,注意添加一个size字段,通过最终评分来赋值

⑧ 在bokeh中做散点图时,可以给TOP10的点用颜色区分

‘’’

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import warnings

warnings.filterwarnings(‘ignore’)

#导入绘图需要的库

from bokeh.models import ColumnDataSource #导入columndatasource

from bokeh.plotting import figure,show,output_file

from bokeh.layouts import gridplot #多图联动顶层框架gridplot

from bokeh.models import HoverTool #自定义鼠标跟随提示信息

#调用output_file函数填写bokeh生成html位置 默认root_dir为当前project的位置即之前 chdir的位置

#output_file(filename, title=“Bokeh Plot”, mode=“cdn”, root_dir=None)

output_file(‘project7.2.html’)

‘’’

(1) 加载数据

‘’’

import os

os.chdir(r’E:\软件自学\数据分析–网易微专业\【非常重要】Python数据分析师微专业_项目资料\项目07城市餐饮店铺选址分析’)

data2 = pd.read_excel(‘data.xlsx’,sheetname=0)

‘’’

(2) 指标标准化

‘’’

data2[‘rkmd_norm’] = (data2[‘Z’]-data2[‘Z’].min())/(data2[‘Z’].max()-data2[‘Z’].min()) # 人口密度指标标准化

data2[‘cyrd_norm’] = (data2[‘cy_count’]-data2[‘cy_count’].min())/(data2[‘cy_count’].max()-data2[‘cy_count’].min()) # 餐饮热度指标标准化

data2[‘tljp_norm’] = (data2[‘sc_count’].max()-data2[‘sc_count’].max()-data2[‘sc_count’].min()) # 同类竞品指标标准化

data2[‘dlmi_norm’] = (data2[‘LENGTH’]-data2[‘LENGTH’].min())/(data2[‘LENGTH’].max()-data2[‘LENGTH’].min()) # 道路密度指标标准化

data2[‘final_score’] = data2[‘rkmd_norm’]*0.4 + data2[‘cyrd_norm’]*0.3 + data2[‘tljp_norm’]*0.1 + data2[‘dlmi_norm’]*0.2

#将数据按照finalscore进行排序,并且按照此顺序重新编制index

data_final_q2 = data2.sort_values(by = ‘final_score’,ascending=False).reset_index()

‘’’

(3) 制作空间散点图

‘’’

#添加size字段 数值为finalscore的20倍

data_final_q2[‘size’]=data_final_q2[‘final_score’]*20

#添加color字段 将前十名变成红色 其他变成蓝色

data_final_q2[‘color’] = ‘green’

data_final_q2.iloc[:10][‘color’] = ‘red’

source = ColumnDataSource(data_final_q2)

创建ColumnDataSource数据

hover = HoverTool(tooltips=[(“经度”, “@lng”),

(“纬度”, “@lat”),

(“最终得分”, “@final_score”),

]) # 设置标签显示内容

p = figure(plot_width=800, plot_height=800,

title=“空间散点图” ,

tools=[hover,‘box_select,reset,wheel_zoom,pan,crosshair’])

构建绘图空间

p.square(x = ‘lng’,y = ‘lat’,source = source,

line_color = ‘black’,fill_alpha = 0.5,

size = ‘size’,color = ‘color’)

p.ygrid.grid_line_dash = [6, 4]

p.xgrid.grid_line_dash = [6, 4]

散点图

# -*- coding: utf-8 -*-"""Created on Sun Aug 18 22:59:51 @author: HASEE"""'''2、选择一个餐饮类型,在qgis中做将上海划分成格网空间,结合python辅助做空间指标评价,得到餐饮选址位置* 课程这里以“素菜馆为例”课程数据① net_population.shp → 投影坐标系,上海1km²格网内的人口密度数据② road.shp → 投影坐标西,上海道路数据要求:① 通过空间分析,分别计算每个格网内的几个指标:人口密度指标、道路密度指标、餐饮热度指标、同类竞品指标② 评价方法:人口密度指标 → 得分越高越好道路密度指标 → 得分越高越好餐饮热度指标 → 得分越高越好同类竞品指标 → 得分越低越好综合指标 = 人口密度指标*0.4 + 餐饮热度指标*0.3 + 道路密度指标*0.2 +同类竞品指标*0.1③ 最后得到较好选址的网格位置的中心坐标,以及所属区域* 可以用bokeh制作散点图提示:① 道路密度指标计算方法 → 网格内道路长度② 餐饮热度指标计算方法 → 网格内餐饮poi计数③ 同类竞品指标计算方法 → 网格内素菜馆poi计数④ 餐饮poi数据记得投影⑤ 可以以“net_population.shp”为网格基础数据,做空间统计⑥ 在qgis做空间统计之后,网格数据导出点数据,投影成wgs84地理坐标系,导出excel数据,在python做指标标准化等⑦ 在bokeh中做散点图时,注意添加一个size字段,通过最终评分来赋值⑧ 在bokeh中做散点图时,可以给TOP10的点用颜色区分'''import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings('ignore')#导入绘图需要的库from bokeh.models import ColumnDataSource #导入columndatasourcefrom bokeh.plotting import figure,show,output_filefrom bokeh.layouts import gridplot #多图联动顶层框架gridplotfrom bokeh.models import HoverTool #自定义鼠标跟随提示信息#调用output_file函数填写bokeh生成html位置 默认root_dir为当前project的位置即之前 chdir的位置#output_file(filename, title="Bokeh Plot", mode="cdn", root_dir=None)output_file('project7.2.html')'''(1) 加载数据'''import osos.chdir(r'E:\软件自学\数据分析--网易微专业\【非常重要】Python数据分析师微专业_项目资料\项目07城市餐饮店铺选址分析')data2 = pd.read_excel('data.xlsx',sheetname=0)'''(2) 指标标准化'''data2['rkmd_norm'] = (data2['Z']-data2['Z'].min())/(data2['Z'].max()-data2['Z'].min()) # 人口密度指标标准化data2['cyrd_norm'] = (data2['cy_count']-data2['cy_count'].min())/(data2['cy_count'].max()-data2['cy_count'].min()) # 餐饮热度指标标准化data2['tljp_norm'] = (data2['sc_count'].max()-data2['sc_count'].max()-data2['sc_count'].min()) # 同类竞品指标标准化data2['dlmi_norm'] = (data2['LENGTH']-data2['LENGTH'].min())/(data2['LENGTH'].max()-data2['LENGTH'].min()) # 道路密度指标标准化data2['final_score'] = data2['rkmd_norm']*0.4 + data2['cyrd_norm']*0.3 + data2['tljp_norm']*0.1 + data2['dlmi_norm']*0.2#将数据按照finalscore进行排序,并且按照此顺序重新编制indexdata_final_q2 = data2.sort_values(by = 'final_score',ascending=False).reset_index()'''(3) 制作空间散点图'''#添加size字段 数值为finalscore的20倍data_final_q2['size']=data_final_q2['final_score']*20#添加color字段 将前十名变成红色 其他变成蓝色 data_final_q2['color'] = 'green'data_final_q2.iloc[:10]['color'] = 'red'source = ColumnDataSource(data_final_q2)# 创建ColumnDataSource数据hover = HoverTool(tooltips=[("经度", "@lng"),("纬度", "@lat"),("最终得分", "@final_score"),]) # 设置标签显示内容p = figure(plot_width=800, plot_height=800,title="空间散点图" , tools=[hover,'box_select,reset,wheel_zoom,pan,crosshair']) # 构建绘图空间p.square(x = 'lng',y = 'lat',source = source,line_color = 'black',fill_alpha = 0.5,size = 'size',color = 'color')p.ygrid.grid_line_dash = [6, 4]p.xgrid.grid_line_dash = [6, 4]# 散点图show(p)

over = HoverTool(tooltips=[(“经度”, “@lng”),

(“纬度”, “@lat”),

(“最终得分”, “@final_score”),

]) # 设置标签显示内容

p = figure(plot_width=800, plot_height=800,

title=“空间散点图” ,

tools=[hover,‘box_select,reset,wheel_zoom,pan,crosshair’])

构建绘图空间

p.square(x = ‘lng’,y = ‘lat’,source = source,

line_color = ‘black’,fill_alpha = 0.5,

size = ‘size’,color = ‘color’)

p.ygrid.grid_line_dash = [6, 4]

p.xgrid.grid_line_dash = [6, 4]

散点图

show§

[外链图片转存失败(img-7VjRxcZt-1566141966128)(C:\Users\HASEE\AppData\Roaming\Typora\typora-user-images\1566141790139.png)]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。