python使用場景還是很多的,特別是在實現(xiàn)自動化的辦公階段,python的用處是比較的大的,那么,今天又有一個比較新奇的想法,如何使用python中的pyecharts去畫一個中國地圖呢?下面給各位讀者做一個詳細介紹。
在這一個月的時間里,利用網絡爬蟲爬取了杭州所有二手房的一個數(shù)據(jù),在作圖的時候發(fā)現(xiàn)在地圖呈現(xiàn)上還是有欠缺,這里就把用到的貼出來,提升一下記憶。
之前有接觸用Basemap繪制地圖,但是在涉及到中國行政劃分上感覺不是很方便。Echarts在數(shù)據(jù)可視化上應用比較廣泛,這里采用pyecharts生成echarts風格的圖表。
環(huán)境:pycharm;python3.6;
1、安裝
pycharts包的安裝
pip install pyecharts
在繪制地圖時,需要導入相應的地圖文件包
全球國家地圖:echarts-countries-pypkg(1.9MB)
中國省級地圖:echarts-china-provinces-pypkg(730KB)
中國市級地圖:echarts-china-cities-pypkg(3.8MB)
建議繪圖之前就裝好,安裝方法跟安裝工具包的方法一致:
pip install echarts-countries-pypkg; pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg
2、繪制地圖
from pyecharts import Map #attr,value要顯示的數(shù)值 value=[20,100] attr=['余杭區(qū)','蕭山區(qū)'] #圖框的基本特性 m=Map('杭州地圖示例圖',width=600,height=400) #添加數(shù)據(jù)到圖框中 m.add('',attr,value,maptype=u'杭州',visual_range=[0,100],is_visualmap=True,visual_text_color='#000') #show_config()打印輸出圖表的所有配置項 m.show_config() #render()生成.html文件 m.render() m=Map(title=”“,subtitle=”“,**kwargs)指定圖框基本特性。 m.add(**kwargs)主要用于數(shù)據(jù)呈現(xiàn),依次為圖例、x,y。 attr:list,是地級市名的列表,你要對哪個區(qū)域進行標注,就寫入對應的區(qū)域。注意里面的名字要規(guī)整,不然后面就標記不成功。 value:list,是attr各區(qū)對應的數(shù)值。 maptype=u’杭州’:指定需要繪制的地區(qū)的區(qū)域。可以是省級地名,也可以是市級地名。 visual_range=[0,100]:指定地圖的顏色范圍區(qū)間,默認是[0,100]。這里主要是參考y值的范圍,便于生成有顏色差的圖形。 is_label_show=True:顯示每個點的值x m.show_config():會在終端打印出圖表文件的所有配置項。 m.render():默認在當前文件生成一個render.html文件
通過瀏覽器打開生成的render.html文件即可看到生成的圖形
pyecharts的坑---“畫圖不顯示“
關于Pyecharts畫圖,圖卻不顯示出來的問題,出問題可能有好幾種原因。可能是版本問題、包沒下全等等,在這邊說的是一個很坑的問題,博主因為這個白白浪費了好幾個小時和精力。
最近在做數(shù)據(jù)挖掘課設,用pandas處理數(shù)據(jù),十分的方便,沒錯,圖不顯示就是因為它。
下面為大家舉個例子
假設我們有一組數(shù)據(jù),轉為DataFrame或者Series后經過多種處理,最終從中提取出來,想要用pyecharts做一個圖,于是就會出現(xiàn)文章標題這樣的錯誤。
from pyecharts.charts import Bar from pyecharts import options as opts import pandas as pd x=[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49] y=[3,8,7,18,28,48,59,44,61,80,69,59,63,59,64,46,64,55,50,62,57,51,44,34,34,34,40,34,39,41,22,43,30,23] pdx=pd.Series(x) pdy=pd.Series(y) x_value=pdx.values y_value=pdy.values #Pyecharts 1.9.0所以支持鏈式表達 bar=( Bar() .add_xaxis(x_value) .add_yaxis("y值",y_value) .set_global_opts(title_opts=opts.TitleOpts(title="標題")) ) bar.render()
讓我們來看看這樣畫出來的圖,就會發(fā)現(xiàn)它顯示不出來。
原因如下
print(x_value) print(type(y_value)) print(type(y_value[0]))
打印出來之后就會發(fā)現(xiàn):
[16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49]
<class'numpy.ndarray'>
<class'numpy.int64'>
列表中的數(shù)據(jù)類型為numpy.int64
而pyecharts要求int類型的數(shù)據(jù),所以畫的柱狀圖無法顯示數(shù)據(jù)。
正確的做法就是把數(shù)據(jù)全部轉為int類型,或者不用pandas處理數(shù)據(jù)…
我嘗試著在轉為datafram、或series時將類型轉為int,但它還是會自動轉為numpy.int32。
pdx=pd.Series(x,dtype=int) pdy=pd.Series(y,dtype=int)
print類型
<class'numpy.ndarray'> <class'numpy.int32'>
以上就為大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127979.html
摘要:作為菜鳥,在學習使用模塊進入的時候,又遇到了問題那就是,可以使用一下代碼,導入和模塊,但是弄了之后看不見地圖。例如所以呢,只能自己去上下載第三方包,自己在中安裝了。這位大神也給了一些解決辦法,需要的請參考 作為菜鳥,在學習使用pyecharts模塊進入jupyter notebook的時候,又遇到了問題——那就是,可以使用一下代碼,導入Geo和Map模塊,但是弄了之后看不見地圖。 fr...
小編寫這篇文章的主要目的,是給大家去做一個介紹,介紹關于Python pyecharts繪制地理圖標的方法,下面會給大家去羅列一個一個的步驟,將這些具體的內容,給大家去一一的展示出來,就具體的內容,下面就給大家詳細解答下。 炫酷地圖 前期我們介紹了很多的地圖模板,不管是全球的還是中國的,其實我感覺都十分的炫酷,哈哈哈,可是還有更加神奇的,更加炫酷的地圖模板,下面讓我們一起一飽眼福吧! 3...
小編寫這篇文章的主要目的,主要是給大家做一個詳細的介紹,介紹的內容是Python可視化神器,這個神器指的是pyecharts,那么,怎么樣利用這種語言去進行繪制箱型圖呢?下面小編就給大家詳細解答下。 概念 后面的圖形都是一些專業(yè)的統(tǒng)計圖形,當然也會是我們可視化的對象。 箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計圖。因形狀如箱子而得名。...
小編寫這篇文章的主要目的,主要是來給大家去做出一個相關性的介紹,介紹的內容主要還是涉及到Python pyecharts,主要是利用Python pyecharts去繪制漏斗,那么,具體要怎么繪制呢?下面給大家詳細解答下。 漏斗圖 漏斗圖是由Light等在1984年提出,一般以單個研究的效應量為橫坐標,樣本含量為縱坐標做的散點圖。效應量可以為RR、OR和死亡比或者其對數(shù)值等。理論上講,被納...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02