激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python機器學習之使用Pyecharts制作可視化大屏

Python機器學習之使用Pyecharts制作可視化大屏

2022-01-20 00:06億是守候 & 億是承諾 Python

pyecharts是一個用于生成Echarts圖表的Python庫,Echarts是百度開源的一個數據可視化 JS 庫,可以生成一些非常酷炫的圖表,這篇文章主要給大家介紹了關于Python機器學習之Pyecharts制作可視化大屏的相關資料,需要的朋友可以參考下

前言

ECharts是由百度開源的基于JS的商業級數據圖表庫,有很多現成的圖表類型和實例,而Pyecharts則是為了方便我們使用Python實現ECharts的繪圖。使用Pyecharts制作可視化大屏,可以分為兩步:

1、使用分別Pyecharts分別制作各類圖形;

2、使用Pyecharts中的組合圖表功能,將所有圖片拼接在一張html文件中進行展示。

小五認為影響大屏美觀最重要的兩個因素就是:配色和布局!在本文中,會特意強調這兩點

 

Pyecharts可視化

本文縮減了圖表,只選用2020東京奧運會各國金牌分布圖、2020東京奧運會獎牌榜詳情、2020東京奧運會中國各項目獲獎詳情。

這類圖表都很簡單,參照官方文檔直接復制示例就可以學習。圖表配色都使用的Pyecharts默認顏色,大家實際使用時盡量形成自己的風格。

爬取數據

import requests
import pandas as pd
from pprint import pprint
url = 'https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609'
data1 = requests.get(url).json()
pprint(data1)

 

Map世界地圖

Pyecharts繪制世界地圖時,名稱必須是英文。所以我們在前文中引入了國家名稱中英文對照表,左連接形成了df1:

df1 = pd.DataFrame()
for info in data1['body']['allMedalData']:
  name = info['countryName']
  name_id = info['countryId']
  rank = info['rank']
  gold = info['goldMedalNum']
  silver = info['silverMedalNum']
  bronze = info['bronzeMedalNum']
  total = info['totalMedalNum']
  # 組織數據
  orangized_data = [[name,name_id,rank,gold,silver,bronze,total]]
  # 然后追加df
  df1 = df1.append(orangized_data)
df1.columns = ['名稱', 'ID', '排名', '金牌', '銀牌', '銅牌', '獎牌總數']
df1

Python機器學習之使用Pyecharts制作可視化大屏

url = 'https://app-sc.miguvideo.com/vms-livedata/olympic-medal/detail-total/15/110000004609'
data2 = requests.get(url).json()
pprint(data2)
df2 = pd.DataFrame()
for info in data2['body']['medalTableDetail']:
  english_name = info['countryName']
  name_id = info['countryId']
  award_time = info['awardTime']
  item_name = info['bigItemName']
  sports_name = info['sportsName']
  medal_type = info['medalType']
  # 組織數據
  orangized_data = [[english_name,name_id,award_time,item_name,sports_name,medal_type]]
  # 然后追加df
  df2 = df2.append(orangized_data)
df2.columns = ['英文縮寫', 'ID', '獲獎時間', '項目名', '運動員', '金牌類型']
df2

Python機器學習之使用Pyecharts制作可視化大屏

數據預處理

with open("國家名中英文對照表.txt","r",encoding="utf-8") as f:
  x = f.read()

df3 = pd.DataFrame()
for i in x.split("\n"):
  x = i.split(":")[0].strip()
  y = i.split(":")[1].strip()
  orangined_data = [[x,y]]
  df3 = df3.append(orangined_data)
df3.columns = ["名稱","英文名稱"]
df3.to_excel("國家名中英文對照表.xlsx",index=None)
df4 = pd.merge(df1,df3,on="名稱",how="left")
df4.head(10)

Python機器學習之使用Pyecharts制作可視化大屏

df5 = df2
df6 = pd.merge(df4,df5,on="ID",how="left")
df6.head(10)

Python機器學習之使用Pyecharts制作可視化大屏

df6

Python機器學習之使用Pyecharts制作可視化大屏

x = {"獲獎名次":["金牌","銀牌","銅牌"],"金牌類型":[1,2,3]}
df7 = pd.DataFrame(x)
df7

Python機器學習之使用Pyecharts制作可視化大屏

df8 = pd.merge(df6,df7,on="金牌類型",how="left")
df8.head(10)

Python機器學習之使用Pyecharts制作可視化大屏

df4.head(10)

Python機器學習之使用Pyecharts制作可視化大屏

Pyecharts可視化

單獨提取英文名稱和獎牌總數兩列數據,用來可視化。

data_list=[[i,j] for i,j in zip(df4['英文名稱'],df4['獎牌總數'])]
data_list[:5]

Python機器學習之使用Pyecharts制作可視化大屏

數據準備好了,開始利用pyecharts繪制世界地圖。

from pyecharts import options as opts
from pyecharts.charts import Map

c = (
  Map()
  .add("", data_list, "world",
        is_map_symbol_show=False,
  )
  .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  .set_global_opts(
      title_opts=opts.TitleOpts(title="2020東京奧運會各國總獎牌分布圖"),
      visualmap_opts=opts.VisualMapOpts(max_=100)
  )
)

c.render_notebook()

非常簡單

Python機器學習之使用Pyecharts制作可視化大屏

金牌總數

data_list1=[[i,j] for i,j in zip(df4['英文名稱'],df4['金牌'])]
data_list1[:5]
from pyecharts import options as opts
from pyecharts.charts import Map

c = (
  Map()
  .add("", data_list1, "world",
       is_map_symbol_show=False,
       )
  .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  .set_global_opts(
      title_opts=opts.TitleOpts(title="2020東京奧運會各國金牌分布圖"),
      visualmap_opts=opts.VisualMapOpts(max_=100)
  )
)

c.render_notebook()

Python機器學習之使用Pyecharts制作可視化大屏

銀牌總數

data_list2=[[i,j] for i,j in zip(df4['英文名稱'],df4['銀牌'])]
data_list2[:5]
from pyecharts import options as opts
from pyecharts.charts import Map

c = (
  Map()
  .add("", data_list2, "world",
       is_map_symbol_show=False,
       )
  .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  .set_global_opts(
      title_opts=opts.TitleOpts(title="2020東京奧運會各國銀牌分布圖"),
      visualmap_opts=opts.VisualMapOpts(max_=100)
  )
)

c.render_notebook()

Python機器學習之使用Pyecharts制作可視化大屏

 

柱狀圖、餅圖

柱狀圖(Bar)

from pyecharts import options as opts
from pyecharts.charts import Bar

c = (
  Bar()
  .add_xaxis(df4['名稱'].head(25).tolist())
  .add_yaxis("金牌", df4['金牌'].head(25).tolist(), stack="stack1")
  .add_yaxis("銀牌", df4['銀牌'].head(25).tolist(), stack="stack1")
  .add_yaxis("銅牌", df4['銅牌'].head(25).tolist(), stack="stack1")
  .set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12, color='#FFFFFF'))
  .set_global_opts(title_opts=opts.TitleOpts(title="2020東京奧運會獎牌榜詳情"),
                   xaxis_opts=opts.AxisOpts(type_='category',
                                            axislabel_opts=opts.LabelOpts(
                                                rotate=45),
                                            )))
c.render_notebook()

Python機器學習之使用Pyecharts制作可視化大屏

餅圖(Pie)

from pyecharts import options as opts
from pyecharts.charts import Pie

c = (
  Pie()
  .add("", [['跳水', 12], ['射擊', 11], ['舉重', 8], ['競技體操', 8], ['乒乓球', 7], ['游泳', 6], ['羽毛球', 6], ['田徑', 5], ['靜水皮劃艇', 3], ['蹦床體操', 3], ['自由式摔跤', 3], ['賽艇', 3], ['空手道', 2], ['拳擊', 2], ['帆船', 2], ['花樣游泳', 2], ['跆拳道', 1], ['場地自行車賽', 1], ['古典式摔跤', 1], ['擊劍', 1], ['三人籃球', 1]],
       center=["50%", "60%"],)
  .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()

Python機器學習之使用Pyecharts制作可視化大屏

這樣需要用到的三張圖表就繪制好了。

 

Pyecharts組合圖表

Pyecharts進行可視化大屏第二步就是組合圖表,大致可分為四類:

  • Grid:并行多圖
  • Page:順序多圖
  • Tab:選項卡多圖
  • Timeline:時間線輪播多圖

官方文檔:Pyecharts

這里用Page(順序多圖)居多,在組合圖表之前,還要先把前面的圖表繪制代碼改為函數。

def map_world() -> Map:
  c = (
      Map(init_opts=opts.InitOpts(chart_id=2, bg_color='#ADD8E6'))
      .add("", data_list, "world",
           is_map_symbol_show=False,
           )
      .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
      .set_global_opts(
          title_opts=opts.TitleOpts(title="2020東京奧運會各國金牌分布圖"),
          visualmap_opts=opts.VisualMapOpts(max_=100)
      )
  )
  return c

順便還在其中增加了背景顏色bg_color、圖表IDchart_id,后者用于多圖表時定位區分。背景顏色的話,我選擇了淡藍色#ADD8E6。后續圖片的布局是根據圖表ID的對應關系進行布局,所以每張圖都要分別設置其id。

接著使用page = Page(layout= Page.DraggablePageLayout)模式對圖片進行展示,這一步是為了調整布局。

page = Page(layout=Page.DraggablePageLayout, page_title="2020東京奧運會獎牌榜")

# 在頁面中添加圖表
page.add(
  title(),
  map_world(),
  bar_medals(),
  pie_china(),)

page.render('test.html')

調用繪制函數后生成一個 test.html 文件。

打開后可以其中的圖片進行拖拽,來實現自定義布局。

Python機器學習之使用Pyecharts制作可視化大屏

對圖片布局完畢后,要記得點擊左上角“save config”對布局文件進行保存。

點擊后,本地會生成一個chart_config.json的文件,這其中包含了每個圖表ID對應的布局位置。

Python機器學習之使用Pyecharts制作可視化大屏

最后,調用保存好的布局文件,重新生成html。

運行下面這行代碼。

page.save_resize_html('test.html', cfg_file='chart_config.json', dest='奧運.html')

其中test.html 為生成的所有圖表的文件、chart_config.json 為下載的布局文件、奧運.html 為布局好的的儀表盤文件、打開儀表奧運.html:

Python機器學習之使用Pyecharts制作可視化大屏

這樣就實現了一次數據可視化――大屏展示。

但還有還有很多不足之處,比如若圖表配色沒有特殊去做調整。

整張大屏只是一個靜態的展示,而非具有商業場景的數據儀表盤。

Python機器學習之使用Pyecharts制作可視化大屏

真正的數據大屏往往更喜歡用BI軟件生成,能夠實現圖、表、切片器之間交叉篩選,希望以后有機會能用Python使用制作出來。

 

總結

到此這篇關于Python機器學習之Pyecharts制作可視化大屏的文章就介紹到這了,更多相關Pyecharts可視化大屏內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_48678602/article/details/120577477

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久草在线新视觉 | 欧美一级高清免费 | 国产精品美女久久久久久不卡 | 12av毛片 | 免费观看一区 | 毛片成人| 午夜神马电影网 | 韩国精品久久久 | 午夜久久久精品一区二区三区 | 国产精品久久久久久久久久东京 | av免费在线观看av | 成人久久久精品乱码一区二区三区 | 久久久久日本精品一区二区三区 | 成人福利视频在线 | 国产精品久久99精品毛片三a | 91精品国产日韩91久久久久久360 | av噜噜噜噜 | 国产成年人视频 | 日韩精品一区二区三区中文 | 爽毛片 | 国产精品久久av | 免费黄色入口 | 曰本三级日本三级日本三级 | 色综合激情 | 国产精品视频在 | 欧美一级黄色片在线观看 | 国产88久久久国产精品免费二区 | 免费的性爱视频 | 伊人亚洲精品 | 中文字幕精品在线视频 | 性少妇videosexfreexxx片 | 91香蕉影视| 成人一区二区在线观看视频 | hd极品free性xxx一护士 | 国产精品99免费视频 | 国产一国产精品一级毛片 | wankzhd| 2021av视频| 亚洲精品午夜电影 | 在线观看福利网站 | 国产成人精品无人区一区 |