溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么利用Pyecharts可視化微信好友

發(fā)布時間:2021-02-05 11:02:28 來源:億速云 閱讀:196 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹怎么利用Pyecharts可視化微信好友,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

前言

最近在研究 pyecharts  的用法,它是 python 的一個可視化工具,然后就想著結(jié)合微信來一起玩

不多說,直接看效果:

怎么利用Pyecharts可視化微信好友

怎么利用Pyecharts可視化微信好友

環(huán)境配置

pip install pyecharts
pip install snapshot_selenium
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install wxpy

獲取好友

主要是獲取好友基本數(shù)據(jù),用來做數(shù)據(jù)可視化

代碼如下:

from wxpy import Bot, Chat

class Demo(Chat):

 @staticmethod
 def get_friend():
 bot = Bot()
 friends = bot.friends(update=True)

 friend_data = []
 for friend in friends:
  if friend.sex == 1:
  sex = "男"
  elif friend.sex == 2:
  sex = "女"
  else:
  sex = ""
  friend_dict = {
  "city": friend.city,
  "province": friend.province,
  "sex": sex,
  "signature": friend.signature,

  }
  friend_data.append(friend_dict)

 return friend_data

返回的是微信好友列表,包含好友城市,省份,性別和個性簽名等數(shù)據(jù)。

地理坐標(biāo)圖

地理坐標(biāo)系組件用于地圖的繪制,支持在地理坐標(biāo)系上繪制散點圖,線集。

在 pyecharts  中地理坐標(biāo)圖主要是基于 Geo 模塊

def geo_base():
 city_data = get_data()
 geo = Geo(init_opts=opts.InitOpts(theme="vintage"))
 for city in city_data:
 try:
  geo.add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color="gray"))
  geo.add("微信好友分布地圖", [city], type_="effectScatter", symbol_size=10)
  geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="微信好友分布地圖"), )
 except Exception as e:
  print(e)
  pass

 # geo.render("geo.html")
 make_snapshot(driver, geo.render(), "geo.png")

運行完之后會在當(dāng)前目錄生成一個 geo.png 的圖片

怎么利用Pyecharts可視化微信好友

該圖片就是微信好友中國分布地圖

熱力圖

熱力圖也是基于 Geo 模塊

唯一的區(qū)別在 add 函數(shù)中 type 的為 heatmap

代碼如下:

def heat_map():
 city_data = get_data()
 geo = Geo(init_opts=opts.InitOpts(theme="vintage"))
 for city in city_data:
 try:
  geo.add_schema(maptype="廣東", itemstyle_opts=opts.ItemStyleOpts(color="gray"))
  geo.add("廣東好友熱力圖", [city], type_="heatmap", symbol_size=10)
  geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="熱力圖"), toolbox_opts=opts.ToolboxOpts())
 except :
  pass

 geo.render("heat.html")

比如可以選擇某個省份的數(shù)據(jù),運行之后的效果:

怎么利用Pyecharts可視化微信好友

以上就是微信中的廣東好友分布熱力圖

全國分布圖

地圖是基于 Map 模塊進行擴展

主要用到函數(shù)是 add

 def add(
 # 系列名稱,用于 tooltip 的顯示,legend 的圖例篩選。
 series_name: str,

 # 數(shù)據(jù)項 (坐標(biāo)點名稱,坐標(biāo)點值)
 data_pair: Sequence,

 # 地圖類型,具體參考 pyecharts.datasets.map_filenames.json 文件
 maptype: str = "china",

 # 是否選中圖例
 is_selected: bool = True,

 # 是否開啟鼠標(biāo)縮放和平移漫游。
 is_roam: bool = True,

 # 當(dāng)前視角的中心點,用經(jīng)緯度表示
 center: Optional[Sequence] = None,

 # 當(dāng)前視角的縮放比例。
 zoom: Optional[Numeric] = 1,

 # 自定義地區(qū)的名稱映射
 name_map: Optional[dict] = None,

 # 標(biāo)記圖形形狀
 symbol: Optional[str] = None,

 # 是否顯示標(biāo)記圖形
 is_map_symbol_show: bool = True,

 # 標(biāo)簽配置項,參考 `series_options.LabelOpts`
 label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

 # 提示框組件配置項,參考 `series_options.TooltipOpts`
 tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

 # 圖元樣式配置項,參考 `series_options.ItemStyleOpts`
 itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)

代碼如下:

def map_base():
 province_data = province_list()
 maps = Map()
 maps.add("", province_data, "china")
 maps.set_global_opts(title_opts=opts.TitleOpts(title="微信好友分布圖"), visualmap_opts=opts.VisualMapOpts())

 make_snapshot(driver, geo.render(), "map.png")

運行之后,就是生成文章開頭所示的圖片,是不是很有趣呀!

詞云圖

好友城市分布詞云圖

c = (
  WordCloud()
  .add("", city_list, word_size_range=[15, 50], shape="diamond", word_gap=10)
  .set_global_opts(title_opts=opts.TitleOpts(title="diamond"))
 )
 make_snapshot(driver, c.render(), "world.png")

效果如下:

怎么利用Pyecharts可視化微信好友

條形圖

先來看下效果:

怎么利用Pyecharts可視化微信好友

代碼如下:

def bar_datazoom_slider() -> Bar:
 city_data = get_data()
 c = (
 Bar(init_opts=opts.InitOpts(page_title="條形圖"))
 .add_xaxis([city[0] for city in city_data])
 .add_yaxis("城市人數(shù)", [city[1] for city in city_data])
 .set_global_opts(
  title_opts=opts.TitleOpts(title="好友城市分布條形圖"),
  datazoom_opts=[opts.DataZoomOpts(orient="vertical")]
 )
 )
 return c

最后,再提供大家微信頭像另一種好玩的方式:

先看圖:

怎么利用Pyecharts可視化微信好友

除此之外,還能定制文字,將自己想制作的文字,輸入即可!

怎么利用Pyecharts可視化微信好友

以上是“怎么利用Pyecharts可視化微信好友”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI