新聞中心
本篇內(nèi)容介紹了“Python高考報(bào)考遷移圖怎么實(shí)現(xiàn)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站定制方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及玻璃貼膜等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
第一步:整理數(shù)據(jù)
通過(guò)瀏覽器自帶抓包工具得到數(shù)據(jù)接口:
https://voice.baidu.com/api/commonkvapi?aid=gaokao&data={"migration.list":{"descId":6}}&=
返回的為json格式數(shù)據(jù)
接下來(lái)我們需要用python模擬爬取數(shù)據(jù),原數(shù)據(jù)如上圖,最后要把數(shù)據(jù)整理成字典格式,字典的鍵為省份,字典的值為該省考生最想去的前十個(gè)省份,格式如下:
{'青海': ['青海', '北京', '陜西', '江蘇', '四川', '湖北', '上海', '甘肅', '山東', '重慶']}
實(shí)現(xiàn)這一過(guò)程的python代碼如下:
import requests import json url='https://voice.baidu.com/api/commonkvapi?aid=gaokao&data={"migration.list":{"descId":6}}&=' header = { 'User-Agent': 'Mozilla/5.0(Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0' } response = requests.get(url, headers=header) results=json.loads(response.text)['data']['migration.list'] dict={} for i in results: top_10=[] province=i['province'] for m in i['list'][2]['list'][:10]: top_10.append(m['name']) dict[province]=top_10 print(dict)
第二步:用pyecharts畫(huà)出遷徙圖
本次用的是0.5.11版本的pyecharts
畫(huà)遷徙圖的公式為:
from pyecharts import GeoLines, Style style = Style() geo_style = style.add() citylines = GeoLines("2020年全國(guó)高考報(bào)考遷徙圖", **style.init_style) citylines.add("遷徙圖",[('北京','海南'),('北京','黑龍江'),('北京','西藏')],**geo_style) citylines.render()
把上面這段代碼記住,以后需要畫(huà)遷徙圖直接往里面套就行了,下面給大家詳細(xì)介紹一下參數(shù)作用:
1.style是圖表初始化配置,例如圖像大小、背景顏色、標(biāo)題位置等;
2.style的add參數(shù)介紹:
is stack:是否堆積 is convert:x,y軸是否交換 is_legend_show:是否顯示圖例 legend_orient:圖列方向,有'horizontal'(默認(rèn)水平顯示),'vertical'(垂直)可選 legend_pos:圖例位置,有'left', 'center'(默認(rèn)), 'right'可選 legend_text_size/color:圖例名稱字體大小/顏色 is_x/yaxis_show:是否顯示x/y軸 x/yaxis_interval:x/y軸標(biāo)簽的顯示間隔 x/yaxis_min/max:x/y軸刻度最小值/最大值 x/yaxis_label_textsize/textcolor:x/y軸標(biāo)簽字體大小/顏色 xaxis_rotate:x軸標(biāo)簽旋轉(zhuǎn)角度 is_splitline_show:是否顯示網(wǎng)格線 is_label_show:是否顯示標(biāo)簽 label_pos:標(biāo)簽的位置,有'top'(默認(rèn)), 'left', 'right', 'bottom','inside','outside'可選 label_text_color/size:標(biāo)簽字體顏色/大小 is_random:是否隨機(jī)排列顏色列表 label_color:自定義標(biāo)簽顏色 mark_point/line:標(biāo)記點(diǎn)/線,默認(rèn)有'min', 'max', 'average'可選。可自定義標(biāo)記點(diǎn)線,具體格式如:[{'coord': [x, y], 'name': '目標(biāo)標(biāo)記點(diǎn)'}],記住格式是一個(gè)列表 mark_point/line_symbol:標(biāo)記點(diǎn)/線圖形,默認(rèn)為'pin'(點(diǎn)),有'circle'(圓形), 'rect'(正方形), 'roundRect'(圓角正方形), 'triangle'(三角形), 'diamond'(菱形), 'pin'(點(diǎn)), 'arrow'(箭頭)可選 mark_point/line_symbolsize:標(biāo)記點(diǎn)/線圖形大小 mark_point/line_textcolor:標(biāo)記點(diǎn)/線字體顏色
3.citylines表示定義1個(gè)遷徙圖對(duì)象,可以添加標(biāo)題以及初始化圖標(biāo)樣式;
4.citylines.add可以添加標(biāo)簽、路線圖以及圖形樣式
公式代碼生成圖形如下:
很基礎(chǔ)的圖形,沒(méi)有任何樣式。
套上述公式完成本次遷徙圖,代碼如下:
from pyecharts import GeoLines, Style style = Style( title_color="#fff", title_pos="center", width=1200, height=900, background_color="#08192D") geo_style = style.add( legend_orient="vertical", legend_pos="left", legend_top = "center", legend_text_color="#fff", is_label_show=True, line_curve=0.2, line_opacity=0.6, geo_effect_symbol="plane", geo_effect_symbolsize=8, label_pos="right", label_formatter="{b}", label_text_color="#eee", symbol_size = 0.2, label_text_size=8, label_color=['#24936E','#6A4C9C','#0089A7','#BEC23F','#D0104C']) citylines = GeoLines("2020年全國(guó)高考報(bào)考遷徙圖", **style.init_style) for city in list(dict.keys()): line_=[] for i in dict[city]: line_.append(tuple((city,i))) citylines.add("{0}".format(city),line_,**geo_style) citylines.render()
看起來(lái)有點(diǎn)亂,不過(guò)可以通過(guò)點(diǎn)擊左邊標(biāo)簽選擇顯示單個(gè)省份,以河南為例:
通過(guò)分析,發(fā)現(xiàn)各地的考生想留在本省的居多,最后,我還想對(duì)這些遷徙圖的目的地省市的出現(xiàn)次數(shù)進(jìn)行排名,代碼如下:
re_list=[] for city in list(dict.keys()): re_list+=dict[city] re_dict={} for i in list(set(re_list)): re_dict[i]=re_list.count(i) attr=sorted(re_dict.items(),key=lambda k:k[1],reverse=True) chart = Bar("最受喜愛(ài)省份排名", **style.init_style) chart.add("", [i[0] for i in attr], [i[1] for i in attr], is_stack=True,xaxis_rotate=45) chart.render('最受喜愛(ài)省份排名.html')
“Python高考報(bào)考遷移圖怎么實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
網(wǎng)站名稱:Python高考報(bào)考遷移圖怎么實(shí)現(xiàn)
分享鏈接:http://ef60e0e.cn/article/jpoipc.html