You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
522 lines
15 KiB
522 lines
15 KiB
import pyecharts.options as opts
|
|
from pyecharts.charts import BMap
|
|
|
|
data = [
|
|
["海门", 9],
|
|
["鄂尔多斯", 12],
|
|
["招远", 12],
|
|
["舟山", 12],
|
|
["齐齐哈尔", 14],
|
|
["盐城", 15],
|
|
["赤峰", 16],
|
|
["青岛", 18],
|
|
["乳山", 18],
|
|
["金昌", 19],
|
|
["泉州", 21],
|
|
["莱西", 21],
|
|
["日照", 21],
|
|
["胶南", 22],
|
|
["南通", 23],
|
|
["拉萨", 24],
|
|
["云浮", 24],
|
|
["梅州", 25],
|
|
["文登", 25],
|
|
["上海", 25],
|
|
["攀枝花", 25],
|
|
["威海", 25],
|
|
["承德", 25],
|
|
["厦门", 26],
|
|
["汕尾", 26],
|
|
["潮州", 26],
|
|
["丹东", 27],
|
|
["太仓", 27],
|
|
["曲靖", 27],
|
|
["烟台", 28],
|
|
["福州", 29],
|
|
["瓦房店", 30],
|
|
["即墨", 30],
|
|
["抚顺", 31],
|
|
["玉溪", 31],
|
|
["张家口", 31],
|
|
["阳泉", 31],
|
|
["莱州", 32],
|
|
["湖州", 32],
|
|
["汕头", 32],
|
|
["昆山", 33],
|
|
["宁波", 33],
|
|
["湛江", 33],
|
|
["揭阳", 34],
|
|
["荣成", 34],
|
|
["连云港", 35],
|
|
["葫芦岛", 35],
|
|
["常熟", 36],
|
|
["东莞", 36],
|
|
["河源", 36],
|
|
["淮安", 36],
|
|
["泰州", 36],
|
|
["南宁", 37],
|
|
["营口", 37],
|
|
["惠州", 37],
|
|
["江阴", 37],
|
|
["蓬莱", 37],
|
|
["韶关", 38],
|
|
["嘉峪关", 38],
|
|
["广州", 38],
|
|
["延安", 38],
|
|
["太原", 39],
|
|
["清远", 39],
|
|
["中山", 39],
|
|
["昆明", 39],
|
|
["寿光", 40],
|
|
["盘锦", 40],
|
|
["长治", 41],
|
|
["深圳", 41],
|
|
["珠海", 42],
|
|
["宿迁", 43],
|
|
["咸阳", 43],
|
|
["铜川", 44],
|
|
["平度", 44],
|
|
["佛山", 44],
|
|
["海口", 44],
|
|
["江门", 45],
|
|
["章丘", 45],
|
|
["肇庆", 46],
|
|
["大连", 47],
|
|
["临汾", 47],
|
|
["吴江", 47],
|
|
["石嘴山", 49],
|
|
["沈阳", 50],
|
|
["苏州", 50],
|
|
["茂名", 50],
|
|
["嘉兴", 51],
|
|
["长春", 51],
|
|
["胶州", 52],
|
|
["银川", 52],
|
|
["张家港", 52],
|
|
["三门峡", 53],
|
|
["锦州", 54],
|
|
["南昌", 54],
|
|
["柳州", 54],
|
|
["三亚", 54],
|
|
["自贡", 56],
|
|
["吉林", 56],
|
|
["阳江", 57],
|
|
["泸州", 57],
|
|
["西宁", 57],
|
|
["宜宾", 58],
|
|
["呼和浩特", 58],
|
|
["成都", 58],
|
|
["大同", 58],
|
|
["镇江", 59],
|
|
["桂林", 59],
|
|
["张家界", 59],
|
|
["宜兴", 59],
|
|
["北海", 60],
|
|
["西安", 61],
|
|
["金坛", 62],
|
|
["东营", 62],
|
|
["牡丹江", 63],
|
|
["遵义", 63],
|
|
["绍兴", 63],
|
|
["扬州", 64],
|
|
["常州", 64],
|
|
["潍坊", 65],
|
|
["重庆", 66],
|
|
["台州", 67],
|
|
["南京", 67],
|
|
["滨州", 70],
|
|
["贵阳", 71],
|
|
["无锡", 71],
|
|
["本溪", 71],
|
|
["克拉玛依", 72],
|
|
["渭南", 72],
|
|
["马鞍山", 72],
|
|
["宝鸡", 72],
|
|
["焦作", 75],
|
|
["句容", 75],
|
|
["北京", 79],
|
|
["徐州", 79],
|
|
["衡水", 80],
|
|
["包头", 80],
|
|
["绵阳", 80],
|
|
["乌鲁木齐", 84],
|
|
["枣庄", 84],
|
|
["杭州", 84],
|
|
["淄博", 85],
|
|
["鞍山", 86],
|
|
["溧阳", 86],
|
|
["库尔勒", 86],
|
|
["安阳", 90],
|
|
["开封", 90],
|
|
["济南", 92],
|
|
["德阳", 93],
|
|
["温州", 95],
|
|
["九江", 96],
|
|
["邯郸", 98],
|
|
["临安", 99],
|
|
["兰州", 99],
|
|
["沧州", 100],
|
|
["临沂", 103],
|
|
["南充", 104],
|
|
["天津", 105],
|
|
["富阳", 106],
|
|
["泰安", 112],
|
|
["诸暨", 112],
|
|
["郑州", 113],
|
|
["哈尔滨", 114],
|
|
["聊城", 116],
|
|
["芜湖", 117],
|
|
["唐山", 119],
|
|
["平顶山", 119],
|
|
["邢台", 119],
|
|
["德州", 120],
|
|
["济宁", 120],
|
|
["荆州", 127],
|
|
["宜昌", 130],
|
|
["义乌", 132],
|
|
["丽水", 133],
|
|
["洛阳", 134],
|
|
["秦皇岛", 136],
|
|
["株洲", 143],
|
|
["石家庄", 147],
|
|
["莱芜", 148],
|
|
["常德", 152],
|
|
["保定", 153],
|
|
["湘潭", 154],
|
|
["金华", 157],
|
|
["岳阳", 169],
|
|
["长沙", 175],
|
|
["衢州", 177],
|
|
["廊坊", 193],
|
|
["菏泽", 194],
|
|
["合肥", 229],
|
|
["武汉", 273],
|
|
["大庆", 279],
|
|
]
|
|
|
|
geoCoordMap = {
|
|
"海门": [121.15, 31.89],
|
|
"鄂尔多斯": [109.781327, 39.608266],
|
|
"招远": [120.38, 37.35],
|
|
"舟山": [122.207216, 29.985295],
|
|
"齐齐哈尔": [123.97, 47.33],
|
|
"盐城": [120.13, 33.38],
|
|
"赤峰": [118.87, 42.28],
|
|
"青岛": [120.33, 36.07],
|
|
"乳山": [121.52, 36.89],
|
|
"金昌": [102.188043, 38.520089],
|
|
"泉州": [118.58, 24.93],
|
|
"莱西": [120.53, 36.86],
|
|
"日照": [119.46, 35.42],
|
|
"胶南": [119.97, 35.88],
|
|
"南通": [121.05, 32.08],
|
|
"拉萨": [91.11, 29.97],
|
|
"云浮": [112.02, 22.93],
|
|
"梅州": [116.1, 24.55],
|
|
"文登": [122.05, 37.2],
|
|
"上海": [121.48, 31.22],
|
|
"攀枝花": [101.718637, 26.582347],
|
|
"威海": [122.1, 37.5],
|
|
"承德": [117.93, 40.97],
|
|
"厦门": [118.1, 24.46],
|
|
"汕尾": [115.375279, 22.786211],
|
|
"潮州": [116.63, 23.68],
|
|
"丹东": [124.37, 40.13],
|
|
"太仓": [121.1, 31.45],
|
|
"曲靖": [103.79, 25.51],
|
|
"烟台": [121.39, 37.52],
|
|
"福州": [119.3, 26.08],
|
|
"瓦房店": [121.979603, 39.627114],
|
|
"即墨": [120.45, 36.38],
|
|
"抚顺": [123.97, 41.97],
|
|
"玉溪": [102.52, 24.35],
|
|
"张家口": [114.87, 40.82],
|
|
"阳泉": [113.57, 37.85],
|
|
"莱州": [119.942327, 37.177017],
|
|
"湖州": [120.1, 30.86],
|
|
"汕头": [116.69, 23.39],
|
|
"昆山": [120.95, 31.39],
|
|
"宁波": [121.56, 29.86],
|
|
"湛江": [110.359377, 21.270708],
|
|
"揭阳": [116.35, 23.55],
|
|
"荣成": [122.41, 37.16],
|
|
"连云港": [119.16, 34.59],
|
|
"葫芦岛": [120.836932, 40.711052],
|
|
"常熟": [120.74, 31.64],
|
|
"东莞": [113.75, 23.04],
|
|
"河源": [114.68, 23.73],
|
|
"淮安": [119.15, 33.5],
|
|
"泰州": [119.9, 32.49],
|
|
"南宁": [108.33, 22.84],
|
|
"营口": [122.18, 40.65],
|
|
"惠州": [114.4, 23.09],
|
|
"江阴": [120.26, 31.91],
|
|
"蓬莱": [120.75, 37.8],
|
|
"韶关": [113.62, 24.84],
|
|
"嘉峪关": [98.289152, 39.77313],
|
|
"广州": [113.23, 23.16],
|
|
"延安": [109.47, 36.6],
|
|
"太原": [112.53, 37.87],
|
|
"清远": [113.01, 23.7],
|
|
"中山": [113.38, 22.52],
|
|
"昆明": [102.73, 25.04],
|
|
"寿光": [118.73, 36.86],
|
|
"盘锦": [122.070714, 41.119997],
|
|
"长治": [113.08, 36.18],
|
|
"深圳": [114.07, 22.62],
|
|
"珠海": [113.52, 22.3],
|
|
"宿迁": [118.3, 33.96],
|
|
"咸阳": [108.72, 34.36],
|
|
"铜川": [109.11, 35.09],
|
|
"平度": [119.97, 36.77],
|
|
"佛山": [113.11, 23.05],
|
|
"海口": [110.35, 20.02],
|
|
"江门": [113.06, 22.61],
|
|
"章丘": [117.53, 36.72],
|
|
"肇庆": [112.44, 23.05],
|
|
"大连": [121.62, 38.92],
|
|
"临汾": [111.5, 36.08],
|
|
"吴江": [120.63, 31.16],
|
|
"石嘴山": [106.39, 39.04],
|
|
"沈阳": [123.38, 41.8],
|
|
"苏州": [120.62, 31.32],
|
|
"茂名": [110.88, 21.68],
|
|
"嘉兴": [120.76, 30.77],
|
|
"长春": [125.35, 43.88],
|
|
"胶州": [120.03336, 36.264622],
|
|
"银川": [106.27, 38.47],
|
|
"张家港": [120.555821, 31.875428],
|
|
"三门峡": [111.19, 34.76],
|
|
"锦州": [121.15, 41.13],
|
|
"南昌": [115.89, 28.68],
|
|
"柳州": [109.4, 24.33],
|
|
"三亚": [109.511909, 18.252847],
|
|
"自贡": [104.778442, 29.33903],
|
|
"吉林": [126.57, 43.87],
|
|
"阳江": [111.95, 21.85],
|
|
"泸州": [105.39, 28.91],
|
|
"西宁": [101.74, 36.56],
|
|
"宜宾": [104.56, 29.77],
|
|
"呼和浩特": [111.65, 40.82],
|
|
"成都": [104.06, 30.67],
|
|
"大同": [113.3, 40.12],
|
|
"镇江": [119.44, 32.2],
|
|
"桂林": [110.28, 25.29],
|
|
"张家界": [110.479191, 29.117096],
|
|
"宜兴": [119.82, 31.36],
|
|
"北海": [109.12, 21.49],
|
|
"西安": [108.95, 34.27],
|
|
"金坛": [119.56, 31.74],
|
|
"东营": [118.49, 37.46],
|
|
"牡丹江": [129.58, 44.6],
|
|
"遵义": [106.9, 27.7],
|
|
"绍兴": [120.58, 30.01],
|
|
"扬州": [119.42, 32.39],
|
|
"常州": [119.95, 31.79],
|
|
"潍坊": [119.1, 36.62],
|
|
"重庆": [106.54, 29.59],
|
|
"台州": [121.420757, 28.656386],
|
|
"南京": [118.78, 32.04],
|
|
"滨州": [118.03, 37.36],
|
|
"贵阳": [106.71, 26.57],
|
|
"无锡": [120.29, 31.59],
|
|
"本溪": [123.73, 41.3],
|
|
"克拉玛依": [84.77, 45.59],
|
|
"渭南": [109.5, 34.52],
|
|
"马鞍山": [118.48, 31.56],
|
|
"宝鸡": [107.15, 34.38],
|
|
"焦作": [113.21, 35.24],
|
|
"句容": [119.16, 31.95],
|
|
"北京": [116.46, 39.92],
|
|
"徐州": [117.2, 34.26],
|
|
"衡水": [115.72, 37.72],
|
|
"包头": [110, 40.58],
|
|
"绵阳": [104.73, 31.48],
|
|
"乌鲁木齐": [87.68, 43.77],
|
|
"枣庄": [117.57, 34.86],
|
|
"杭州": [120.19, 30.26],
|
|
"淄博": [118.05, 36.78],
|
|
"鞍山": [122.85, 41.12],
|
|
"溧阳": [119.48, 31.43],
|
|
"库尔勒": [86.06, 41.68],
|
|
"安阳": [114.35, 36.1],
|
|
"开封": [114.35, 34.79],
|
|
"济南": [117, 36.65],
|
|
"德阳": [104.37, 31.13],
|
|
"温州": [120.65, 28.01],
|
|
"九江": [115.97, 29.71],
|
|
"邯郸": [114.47, 36.6],
|
|
"临安": [119.72, 30.23],
|
|
"兰州": [103.73, 36.03],
|
|
"沧州": [116.83, 38.33],
|
|
"临沂": [118.35, 35.05],
|
|
"南充": [106.110698, 30.837793],
|
|
"天津": [117.2, 39.13],
|
|
"富阳": [119.95, 30.07],
|
|
"泰安": [117.13, 36.18],
|
|
"诸暨": [120.23, 29.71],
|
|
"郑州": [113.65, 34.76],
|
|
"哈尔滨": [126.63, 45.75],
|
|
"聊城": [115.97, 36.45],
|
|
"芜湖": [118.38, 31.33],
|
|
"唐山": [118.02, 39.63],
|
|
"平顶山": [113.29, 33.75],
|
|
"邢台": [114.48, 37.05],
|
|
"德州": [116.29, 37.45],
|
|
"济宁": [116.59, 35.38],
|
|
"荆州": [112.239741, 30.335165],
|
|
"宜昌": [111.3, 30.7],
|
|
"义乌": [120.06, 29.32],
|
|
"丽水": [119.92, 28.45],
|
|
"洛阳": [112.44, 34.7],
|
|
"秦皇岛": [119.57, 39.95],
|
|
"株洲": [113.16, 27.83],
|
|
"石家庄": [114.48, 38.03],
|
|
"莱芜": [117.67, 36.19],
|
|
"常德": [111.69, 29.05],
|
|
"保定": [115.48, 38.85],
|
|
"湘潭": [112.91, 27.87],
|
|
"金华": [119.64, 29.12],
|
|
"岳阳": [113.09, 29.37],
|
|
"长沙": [113, 28.21],
|
|
"衢州": [118.88, 28.97],
|
|
"廊坊": [116.7, 39.53],
|
|
"菏泽": [115.480656, 35.23375],
|
|
"合肥": [117.27, 31.86],
|
|
"武汉": [114.31, 30.52],
|
|
"大庆": [125.03, 46.58],
|
|
}
|
|
|
|
|
|
def convert_data():
|
|
res = []
|
|
for i in range(len(data)):
|
|
geo_coord = geoCoordMap[data[i][0]]
|
|
geo_coord.append(data[i][1])
|
|
res.append([data[i][0], geo_coord])
|
|
return res
|
|
|
|
|
|
(
|
|
BMap(init_opts=opts.InitOpts(width="1200px", height="800px"))
|
|
.add(
|
|
type_="effectScatter",
|
|
series_name="pm2.5",
|
|
data_pair=convert_data(),
|
|
symbol_size=10,
|
|
effect_opts=opts.EffectOpts(),
|
|
label_opts=opts.LabelOpts(formatter="{b}", position="right", is_show=False),
|
|
itemstyle_opts=opts.ItemStyleOpts(color="purple"),
|
|
)
|
|
.add_schema(
|
|
baidu_ak="FAKE_AK",
|
|
center=[104.114129, 37.550339],
|
|
zoom=5,
|
|
is_roam=True,
|
|
map_style={
|
|
"styleJson": [
|
|
{
|
|
"featureType": "water",
|
|
"elementType": "all",
|
|
"stylers": {"color": "#044161"},
|
|
},
|
|
{
|
|
"featureType": "land",
|
|
"elementType": "all",
|
|
"stylers": {"color": "#004981"},
|
|
},
|
|
{
|
|
"featureType": "boundary",
|
|
"elementType": "geometry",
|
|
"stylers": {"color": "#064f85"},
|
|
},
|
|
{
|
|
"featureType": "railway",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "highway",
|
|
"elementType": "geometry",
|
|
"stylers": {"color": "#004981"},
|
|
},
|
|
{
|
|
"featureType": "highway",
|
|
"elementType": "geometry.fill",
|
|
"stylers": {"color": "#005b96", "lightness": 1},
|
|
},
|
|
{
|
|
"featureType": "highway",
|
|
"elementType": "labels",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "arterial",
|
|
"elementType": "geometry",
|
|
"stylers": {"color": "#004981"},
|
|
},
|
|
{
|
|
"featureType": "arterial",
|
|
"elementType": "geometry.fill",
|
|
"stylers": {"color": "#00508b"},
|
|
},
|
|
{
|
|
"featureType": "poi",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "green",
|
|
"elementType": "all",
|
|
"stylers": {"color": "#056197", "visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "subway",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "manmade",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "local",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "arterial",
|
|
"elementType": "labels",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
{
|
|
"featureType": "boundary",
|
|
"elementType": "geometry.fill",
|
|
"stylers": {"color": "#029fd4"},
|
|
},
|
|
{
|
|
"featureType": "building",
|
|
"elementType": "all",
|
|
"stylers": {"color": "#1a5787"},
|
|
},
|
|
{
|
|
"featureType": "label",
|
|
"elementType": "all",
|
|
"stylers": {"visibility": "off"},
|
|
},
|
|
]
|
|
},
|
|
)
|
|
.set_global_opts(
|
|
title_opts=opts.TitleOpts(
|
|
title="全国主要城市空气质量",
|
|
subtitle="data from PM25.in",
|
|
subtitle_link="http://www.pm25.in",
|
|
pos_left="center",
|
|
title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
|
|
),
|
|
tooltip_opts=opts.TooltipOpts(trigger="item"),
|
|
)
|
|
.render("air_quality_baidu_map.html")
|
|
) |