『資料視覺化』基於Python的資料視覺化工具
劉宇宙,現在一家創業型公司做技術總負責,做爬蟲和資料處理相關工作,曾從事過卡系統研發、金融雲端計算服務系統研發,物聯網方向大資料研發,著書一本,《Python3.5從零開始學》
如何做Python 的資料視覺化?
一、安裝pyecharts 是一個用於生成 Echarts 圖表的類庫。 Echarts 是百度開源的一個數據視覺化 JS 庫。主要用於資料視覺化。
pyecharts 相容 Python2 和 Python3。目前版本為 0.1.4
pip install pyecharts二、入門
首先開始來繪製你的第一個圖表
frompyecharts importBarbar =Bar("我的第一個圖表", "這裡是副標題")bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90])bar.show_config()bar.render()
Tip:可以按右邊的下載按鈕將圖片下載到本地
-
add()
主要方法,用於新增圖表的資料和設定各種配置項
-
show_config()
列印輸出圖表的所有配置項
-
render()
預設將會在根目錄下生成一個 render.html 的檔案,支援 path 引數,設定檔案儲存位置,如 render(r"e:my_first_chart.html"),檔案用瀏覽器開啟。
預設的編碼型別為 UTF-8,在 Python3 中是沒什麼問題的,Python3 對中文的支援好很多。但是在 Python2 中,編碼的處理是個很頭疼的問題,暫時沒能找到完美的解決方法,目前只能通過文字編輯器自己進行二次編碼,我用的是 Visual Studio Code,先通過 Gbk 編碼重新開啟,然後再用 UTF-8 重新儲存,這樣用瀏覽器開啟的話就不會出現中文亂碼問題了。
基本上所有的圖表型別都是這樣繪製的:
-
chart_name = Type() 初始化具體型別圖表。
-
add() 新增資料及配置項。
-
render() 生成 .html 檔案。
因篇幅原因,這裡只給出了每種圖表型別的示例(程式碼 + 生成圖表),目的是為了引起讀者的興趣。詳細引數的介紹請參考專案 README.md 文件
1 Bar(柱狀圖/條形圖)
frompyecharts importBarbar =Bar("標記線和標記點示例")bar.add("商家A", attr, v1, mark_point=["average"])bar.add("商家B", attr, v2, mark_line=["min", "max"])bar.render()
frompyecharts importBarbar =Bar("x 軸和 y 軸交換")bar.add("商家A", attr, v1)bar.add("商家B", attr, v2, is_convert=True)bar.render()
2 EffectScatter(帶有漣漪特效動畫的散點圖)
frompyecharts importEffectScatterv1 =[10, 20, 30, 40, 50, 60]v2 =[25, 20, 15, 10, 60, 33]es =EffectScatter("動態散點圖示例")es.add("effectScatter", v1, v2)es.render()
es =EffectScatter("動態散點圖各種圖形示例")es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect")es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect")es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond")es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow")es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3,symbol="triangle")es.render()
3 Funnel(漏斗圖)
frompyecharts importFunnelattr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]value =[20, 40, 60, 80, 100, 120]funnel =Funnel("漏斗圖示例")funnel.add("商品", attr, value, is_label_show=True, label_pos="inside", label_text_color="#fff")funnel.render()
4 Gauge(儀表盤)
frompyecharts importGaugegauge =Gauge("儀表盤示例")gauge.add("業務指標", "完成率", 66.66)gauge.show_config()gauge.render()
5 Geo(地理座標系)
frompyecharts importGeodata =[ ("海門", 9),("鄂爾多斯", 12),("招遠", 12),("舟山", 12),("齊齊哈爾", 14),("鹽城", 15), ("赤峰", 16),("青島", 18),("乳山", 18),("金昌", 19),("泉州", 21),("萊西", 21), ("日照", 21),("膠南", 22),("南通", 23),("拉薩", 24),("雲浮", 24),("梅州", 25)...]geo =Geo("全國主要城市空氣質量", "data from pm2.5", title_color="#fff", title_pos="center",width=1200, height=600, background_color='#404a59')attr, value =geo.cast(data)geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff", symbol_size=15, is_visualmap=True)geo.show_config()geo.render()
frompyecharts importGeodata =[("海門", 9), ("鄂爾多斯", 12), ("招遠", 12), ("舟山", 12), ("齊齊哈爾", 14), ("鹽城", 15)]geo =Geo("全國主要城市空氣質量", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')attr, value =geo.cast(data)geo.add("", attr, value, type="effectScatter", is_random=True, effect_scale=5)geo.show_config()geo.render()
6 Graph(關係圖)
frompyecharts importGraphnodes =[{"name": "結點1", "symbolSize": 10}, {"name": "結點2", "symbolSize": 20}, {"name": "結點3", "symbolSize": 30}, {"name": "結點4", "symbolSize": 40}, {"name": "結點5", "symbolSize": 50}, {"name": "結點6", "symbolSize": 40}, {"name": "結點7", "symbolSize": 30}, {"name": "結點8", "symbolSize": 20}]links =[]fori innodes: forj innodes: links.append({"source": i.get('name'), "target": j.get('name')})graph =Graph("關係圖-環形佈局示例")graph.add("", nodes, links, is_label_show=True, repulsion=8000, layout='circular', label_text_color=None)graph.show_config()graph.render()
frompyecharts importGraphimportjsonwithopen("..jsonweibo.json", "r", encoding="utf-8") asf: j =json.load(f) nodes, links, categories, cont, mid, userl =jgraph =Graph("微博轉發關係圖", width=1200, height=600)graph.add("", nodes, links, categories, label_pos="right", repulsion=50, is_legend_show=False, line_curve=0.2, label_text_color=None)graph.show_config()graph.render()
7 Line(折線/面積圖)
frompyecharts importLineattr =["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"]v1 =[5, 20, 36, 10, 10, 100]v2 =[55, 60, 16, 20, 15, 80]line =Line("折線圖示例")line.add("商家A", attr, v1, mark_point=["average"])line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])line.show_config()line.render()
line =Line("折線圖-階梯圖示例")line.add("商家A", attr, v1, is_step=True, is_label_show=True)line.show_config()line.render()
line =Line("折線圖-面積圖示例")line.add("商家A", attr, v1, is_fill=True, line_opacity=0.2, area_opacity=0.4, symbol=None)line.add("商家B", attr, v2, is_fill=True, area_color='#000', area_opacity=0.3, is_smooth=True)line.show_config()line.render()
8 Liquid(水球圖)
frompyecharts importLiquidliquid =Liquid("水球圖示例")liquid.add("Liquid", [0.6])liquid.show_config()liquid.render()
frompyecharts importLiquidliquid =Liquid("水球圖示例")liquid.add("Liquid", [0.6, 0.5, 0.4, 0.3],相關推薦
『資料視覺化』基於Python的資料視覺化工具
劉宇宙,現在一家創業型公司做技術總負責,做爬蟲和資料處理相關工作,曾從事過卡系統研發、金融雲端計算服務系統研發,物聯網方向大資料研發,著書一本,《Python3.5從零開始學》 如何做Python 的資料視覺化? pyecharts 是一個用於
《程式設計師的第一年》---------- 資料探勘之資料處理(C#基於熵的離散化演算法程式碼)
熵(entropy)是最常用的離散化度量之一。它由Claude Shannon在資訊理論和資訊增益概念的開創性工作中首次引進。基於熵的離散化是一種監督的、自頂向下的分裂技術。它在計算和確定分裂點(劃分屬性區間的資料值)時利用類分佈資訊。為了離散數值屬性A,該方法選擇A的具
大資料學習線路圖,Python/資料分析實戰基礎
本文主要歸納Python、資料分析的學習線路圖,學習方向:共分為五大板塊:板塊一:熟悉python,SQLpython(1)python語法(2)常用資料結構(列表、元組、字典)(3)python高階用法(日期和時間、列表推導式、高階函式、多執行緒)SQL(1)聚合(2)表連
機器學習|線性迴歸三大評價指標實現『MAE, MSE, MAPE』(Python語言描述)
對於迴歸預測結果,通常會有平均絕對誤差、平均絕對百分比誤差、均方誤差等多個指標進行評價。這裡,我們先介紹最常用的3個: 平均絕對誤差(MAE) 就是絕對誤差的平均值,它的計算公式如下: M
2018最新Python資料分析實戰教程視訊 python資料分析班視訊 Python資料分析基礎教程 利用Python進行資料分析
系列一:《python資料分析基礎與實踐》章節1Python概況課時2Python簡介章節2Python安裝課時3安裝Anaconda課時4使用Anaconda章節3資料準備課時5資料型別 – 布林型課時6資料型別 – 數值型課時7資料型別 – 字元型課時8資料結構 – List課時9資料結構 – Tuple
限時領取 | 10G+AI人工智慧/複雜系統/資料探勘/深度學習/Python資料
2017 年,AI技術匯聚了大量資本,在國務院出臺的《新一代人工智慧發展規劃》中,人工智慧核心產
基於Python的郵件檢測工具
# 郵件快速檢測工具 ## 概要介紹 `mmpi`,是一款使用python實現的開源郵件快速檢測工具庫,基於[`community`](https://github.com/cuckoosandbox/community)框架設計開發。`mmpi`支援對郵件頭、郵件正文、郵件附件的解析檢測,並輸出json
[原始碼和文件分享]基於python的B站彈幕資料分析(爬蟲+視覺化)
python—B站彈幕資料分析 1 背景 在視訊網站上,一邊看視訊一邊發彈幕已經是網友的習慣。B站就是其中一個比較出名的彈幕網站,許多年輕人都喜歡逛B站,看喜歡的動漫亦或某些UP主做的一些剪輯。本專案,就是對B站彈幕資料進行分析。選取分析的物件是B站上一部國漫《全職高手》。 2 環境的安
基於Python Plotly 對 MySQL 儲存資料的視覺化初步
Pyhon提供強大的視覺化工具,除matplotlib外,pandas、seaborn、ggplot、bokeh、pygal、plotly都具有強大的可視功能(http://www.thebigdat
基於Python的資料視覺化 matplotlib seaborn pandas
原文采用了kaggle上iris花的資料,資料來源從上面的網址上找噢 如果沒有seaborn庫 安裝方法如下 http://www.ithao123.cn/content-10393533.html 正式開始了~~~ # 首先載
基於Python的資料視覺化庫pyecharts介紹
什麼是pyecharts? pyecharts 是一個用於生成 Echarts 圖表的類庫。 ech
【13】Caffe學習系列:資料視覺化環境(python介面)配置
caffe程式是由c++語言寫的,本身是不帶資料視覺化功能的。只能藉助其它的庫或介面,如opencv, python或matlab。更多人會使用python介面來進行視覺化,因為python出了個比較強大的東西:ipython notebook, 現在的最新版本改名叫jupyter notebook
Python資料處理 | (三) Matplotlib資料視覺化
本篇部落格所有示例使用Jupyter NoteBook演示。 Python資料處理系列筆記基於:Python資料科學手冊電子版 下載密碼:ovnh 示例程式碼 下載密碼:02f4 目錄 一、Matplotlib常用技巧 1.匯入
Python資料視覺化之密度圖的繪製
密度圖表現與資料值對應的邊界或域物件的一種理論圖形表示方法。一般用於呈現連續變數。 *摘自百度百科* 在電腦科學當中,資料的視覺化常常被提起。近日,在影象處理當中,需要統計圖片中的人流密度並繪製相應密度圖,於是小小研究一番。效果如下: 所有程式碼儲存在Github上。 首
python資料分析新手入門課程學習——(二)探索分析與視覺化(來源:慕課網)
一,單因子與對比分析視覺化 資料 import pandas as pd df = pd.read_csv('./HR.csv') #檢視前十條資料 df.head(10) 以下為顯示的結果 我們可以看出: 第一個屬性satisf
python --資料視覺化
python --資料視覺化 一、python -- pyecharts庫的使用 pyecharts--> 生成Echarts圖示的類庫 1、安裝: pip install pyecharts pip install pyecharts_snapshot &nbs
python --資料視覺化(二)
一、NumPy 1、簡介: 官網連結:http://www.numpy.org/ NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫 2、基本功能: 快速高效的多維陣列物件ndarray 用於對陣列執行元素級計算以及直
Python資料視覺化的四種簡易方法
摘要: 本文講述了熱圖、二維密度圖、蜘蛛圖、樹形圖這四種Python資料視覺化方法。 資料視覺化是任何資料科學或機器學習專案的一個重要組成部分。人們常常會從探索資料分析(EDA)開始,來深入瞭解資料,並且建立視覺化確實有助於讓問題更清晰和更容易理解,尤其是對於那些較大的高維度資料集。在專
Python資料視覺化:2018年電影分析
本文轉載自:http://gkhelp.cn/1217.html 雙11已經過去,雙12即將來臨,離2018年的結束也就2個月不到,還記得年初立下的flag嗎? 完成了多少?相信很多人和我一樣,抱頭痛哭... 本次利用貓眼電影,實現對2018年的電影大資料進行分析。 網頁分
python資料視覺化入門2
使用scatter()方法繪製散點圖 import matplotlib.pyplot as plt # 繪製一系列點 x_value = [1, 2, 3, 4, 5] y_value = [1, 4, 9, 16, 25] plt.scatter(x_value. y_value,