Pyecharts十類頂級圖,都很實用!

2022-01-02 程式設計師zhenguo

點擊上方藍色字體,關注程式設計師zhenguo

本文是為了幫助大家快速掌握十大頂級繪圖方法,重點解釋數據是如何呈現在不同類型圖中。


使用pip install pyecharts 安裝,安裝後的版本為 v1.6

pyecharts幾行代碼就能繪製出有特色的的圖形,繪圖API鏈式調用,使用方便。

1 儀錶盤
from pyecharts import charts

# 儀錶盤
gauge = charts.Gauge()
gauge.add('Python小例子', [('Python機器學習', 30), ('Python基礎', 70.),
('Python正則', 90)])
gauge.render(path="./data/儀錶盤.html")
print('ok')

儀錶盤中共展示三項,每項的比例為30%,70%,90%,如下圖默認名稱顯示第一項:Python機器學習,完成比例為30%

2 漏鬥圖

from pyecharts import options as opts
from pyecharts.charts import Funnel, Page
from random import randint

def funnel_base() -> Funnel:
c = (
Funnel()
.add("豪車", [list(z) for z in zip(['寶馬', '法拉利', '奔馳', '奧迪', '大眾', '豐田', '特斯拉'],
[randint(1, 20) for _ in range(7)])])
.set_global_opts(title_opts=opts.TitleOpts(title="豪車漏鬥圖"))
)
return c

funnel_base().render('./img/car_funnel.html')
print('ok')

以7種車型及某個屬性值繪製的漏鬥圖,屬性值大越靠近漏鬥的大端。


3 日曆圖

import datetime
import random

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


def calendar_interval_1() -> Calendar:
begin = datetime.date(2019, 1, 1)
end = datetime.date(2019, 12, 27)
data = [
[str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
for i in range(0, (end - begin).days + 1, 2) # 隔天統計
]

calendar = (
Calendar(init_opts=opts.InitOpts(width="1200px")).add(
"", data, calendar_opts=opts.CalendarOpts(range_="2019"))
.set_global_opts(
title_opts=opts.TitleOpts(title="Calendar-2019年步數統計"),
visualmap_opts=opts.VisualMapOpts(
max_=25000,
min_=1000,
orient="horizontal",
is_piecewise=True,
pos_top="230px",
pos_left="100px",
),
)
)
return calendar


calendar_interval_1().render('./img/calendar.html')
print('ok')

繪製2019年1月1日到12月27日的步行數,官方給出的圖形寬度900px不夠,只能顯示到9月份,本例使用opts.InitOpts(width="1200px")做出微調,並且visualmap顯示所有步數,每隔一天顯示一次:


4 圖(graph)

import json
import os

from pyecharts import options as opts
from pyecharts.charts import Graph, Page


def graph_base() -> Graph:
nodes = [
{"name": "cus1", "symbolSize": 10},
{"name": "cus2", "symbolSize": 30},
{"name": "cus3", "symbolSize": 20}
]
links = []
for i in nodes:
if i.get('name') == 'cus1':
continue
for j in nodes:
if j.get('name') == 'cus1':
continue
links.append({"source": i.get("name"), "target": j.get("name")})
c = (
Graph()
.add("", nodes, links, repulsion=8000)
.set_global_opts(title_opts=opts.TitleOpts(title="customer-influence"))
)
return c

構建圖,其中客戶點1與其他兩個客戶都沒有關係(link),也就是不存在有效邊:

5 水球圖

from pyecharts import options as opts
from pyecharts.charts import Liquid, Page
from pyecharts.globals import SymbolType


def liquid() -> Liquid:
c = (
Liquid()
.add("lq", [0.67, 0.30, 0.15])
.set_global_opts(title_opts=opts.TitleOpts(title="Liquid"))
)
return c


liquid().render('./img/liquid.html')

水球圖的取值[0.67, 0.30, 0.15]表示下圖中的三個波浪線,一般代表三個百分比:

6 餅圖
from pyecharts import options as opts
from pyecharts.charts import Pie
from random import randint

def pie_base() -> Pie:
c = (
Pie()
.add("", [list(z) for z in zip(['寶馬', '法拉利', '奔馳', '奧迪', '大眾', '豐田', '特斯拉'],
[randint(1, 20) for _ in range(7)])])
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
return c

pie_base().render('./img/pie_pyecharts.html')

7 極坐標
import random
from pyecharts import options as opts
from pyecharts.charts import Page, Polar

def polar_scatter0() -> Polar:
data = [(alpha, random.randint(1, 100)) for alpha in range(101)] # r = random.randint(1, 100)
print(data)
c = (
Polar()
.add("", data, type_="bar", label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="Polar"))
)
return c


polar_scatter0().render('./img/polar.html')

極坐標表示為(夾角,半徑),如(6,94)表示"夾角"為6,半徑94的點:


8 詞雲圖
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType


words = [
("Python", 100),
("C++", 80),
("Java", 95),
("R", 50),
("JavaScript", 79),
("C", 65)
]


def wordcloud() -> WordCloud:
c = (
WordCloud()
# word_size_range: 單詞字體大小範圍
.add("", words, word_size_range=[20, 100], shape='cardioid')
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud"))
)
return c


wordcloud().render('./img/wordcloud.html')

("C",65)表示在本次統計中C語言出現65次

9 系列柱狀圖
from pyecharts import options as opts
from pyecharts.charts import Bar
from random import randint


def bar_series() -> Bar:
c = (
Bar()
.add_xaxis(['寶馬', '法拉利', '奔馳', '奧迪', '大眾', '豐田', '特斯拉'])
.add_yaxis("銷量", [randint(1, 20) for _ in range(7)])
.add_yaxis("產量", [randint(1, 20) for _ in range(7)])
.set_global_opts(title_opts=opts.TitleOpts(title="Bar的主標題", subtitle="Bar的副標題"))
)
return c


bar_series().render('./img/bar_series.html')


10 熱力圖
import random
from pyecharts import options as opts
from pyecharts.charts import HeatMap


def heatmap_car() -> HeatMap:
x = ['寶馬', '法拉利', '奔馳', '奧迪', '大眾', '豐田', '特斯拉']
y = ['中國','日本','南非','澳大利亞','阿根廷','阿爾及利亞','法國','義大利','加拿大']
value = [[i, j, random.randint(0, 100)]
for i in range(len(x)) for j in range(len(y))]
c = (
HeatMap()
.add_xaxis(x)
.add_yaxis("銷量", y, value)
.set_global_opts(
title_opts=opts.TitleOpts(title="HeatMap"),
visualmap_opts=opts.VisualMapOpts(),
)
)
return c

heatmap_car().render('./img/heatmap_pyecharts.html')

相關焦點

  • pyecharts學習筆記(1)--5分鐘上手pyecharts
    文章來源:pyehcarts官方文檔pyecharts是一款國人開源研製的python庫今天來學習pyecharts這個庫。我們先從一個簡單的開始入手,懂畫圖的基本操作,然後再細緻地學習具體的圖例等相關知識。直接繪製一個簡單的圖:1.
  • pyecharts的繪圖原理詳解
    當數據分析遇上了數據可視化時,pyecharts誕生了。pyecharts分為v0.5和v1兩個大版本,v0.5和v1兩個版本不兼容,v1是一個全新的版本,因此我們的學習儘量都是基於v1版本進行操作。from pyecharts.charts import Scatter  # 導入散點圖from pyecharts.charts import Line     # 導入折線圖from pyecharts.charts import Pie      # 導入餅圖from pyecharts.charts import
  • pyecharts繪圖——河流圖展示
    下面我們來一起了解一下吧~基本語法pyecharts繪製過程可以劃為圖表函數、全局配置、add數據、系列配置這幾模塊,最後再導出展示圖表就可以了。首先要調用圖表函數,其餘三項順序不限。1.圖表函數圖表函數很簡單,你想要畫什麼圖表,就調用相應的圖表函數。
  • 基於Python的數據可視化庫pyecharts介紹
    什麼是pyecharts?  pyecharts 是一個用於生成 Echarts 圖表的類庫。 echarts 是百度開源的一個數據可視化 JS 庫,主要用於數據可視化。pyecharts 是一個用於生成 Echarts 圖表的類庫。實際上就是 Echarts 與 Python 的對接。使用 pyecharts 可以生成獨立的網頁,也可以在 flask , Django 中集成使用。
  • 畫圖神器pyecharts-旭日圖
    當數據分析遇上數據可視化時,pyecharts 誕生了。看看繪圖結果,可以非常清晰,動態的表達層次關係數據(代碼在文末)當然,excel也是可以畫旭日圖的:Excel:臥槽,原來我的可視化也這麼優秀(旭日圖-一個值得收藏的圖)
  • 如何把pyecharts的炫酷延續到PPT裡!?
    有時候,一張炫酷的圖,能讓會議室所有的人喊一聲牛X!」「有啊!截圖放進去唄~」機智如我。「沒有交互功能的pyecharts,是沒有靈魂的!」.....於是我搜羅了一圈,結果發現,關於如何實現這個需求的內容,要麼語焉不詳,要麼極其麻煩,要麼已經過時完全不兼容。最後,我找到了一個目前相對簡便的方法,分享給大家。
  • 想搞懂pyecharts可視化?10分鐘你信不信?
    pyecharts分為v0.5和v1兩個大版本,v0.5和v1兩個版本不兼容,v1是一個全新的版本[1],因此我們的學習儘量都是基於v1版本進行操作。其實每一個圖形庫都是被pyecharts作者封裝成為了一個類,這就是所謂的面向對象,我們在使用這個類的時候,需要實例化這個類(觀察下面代碼)。聲明類之後,相當於初始化了一個畫布,我們之後的繪圖就是在這個畫布上進行。
  • 【Python】用pyecharts繪製我國人口分布和遷移地圖
    安裝pyecharts庫Geo和Map模塊主要函數用Geo模塊繪製人口分布圖3.1  導入我國各省人口數據3.2  在地圖上展示各省人口數據漣漪圖3.3  在地圖上展示各省人口數據熱力圖用Map模塊繪製人口分布圖全國各省人口流入廣東動態軌跡圖5.1 導入我國各省人口遷移數據
  • 別找了,這才是 Pyecharts 的正確打開方式!
    你會說,pyecharts 自帶圖表組合,將多個圖表組合在一起輸出到一個 html 中,但凡是用過這個功能的人都會說不僅難用,並且很難增加一些自定義的元素。還是將圖表放在網頁上,任何人都能訪問查看交互式圖表與源碼,就像這樣👇就像上面展示的一樣,不論是 pyecharts 還是 plotly 還是 bokeh 都可以完美的掛在網站上,按照自己預設的方式,保留一些交互功能與源碼查看!並且更重要的是,我們可以自由排列組合頁面內容,並且根據需要添加更多的自定義元素!
  • 乾貨|且看Pyecharts如何製作多個子圖
    本文轉載自【微信公眾號:數據分析與籃球,ID:dylanxia2019】經微信公眾號授權轉載,如需轉載與原文作者聯繫小編將對Pyecharts繪製多個子圖的能力進行簡單的展示,並且將其應用在具體的案例之上來進行演示,
  • PyEcharts 繪製時間輪播圖
    對於pyecharts繪圖庫,知道了它的繪圖原理後,不管繪製任何圖形難度並不是很大,唯一難住我們的就是pyecharts的參數太多,我們並不會用,因此就必須學會使用官網。下圖是官方提供的繪製時間輪播圖的一個案例,本文就是藉助這個案例的代碼,完成今天這個文章的操作。在講述本文之前,為了滿足大家的好奇心,我們先來看看最終做出來的效果呈現。那麼,今天的這個案例是怎麼做出來的?我們一步步為大家講解。
  • wxpy庫+Pyecharts庫:用Python對微信好友進行數據分析
    Pyecharts庫提供了Echarts的Python接口,讓我們能夠用Python語言來調用Echarts繪製美觀的交互式圖表。詳細使用方法可參考官方網站(http://pyecharts.org/#/zh-cn/prepare)。re庫re庫是使用Python進行數據分析最常使用的庫之一。它能對字符串進行匹配、替換等處理。
  • 【免費贈書】使用 pyechart 輕鬆玩轉數據可視化
    使用pyecharts繪製的圖表美觀且具有交互性。散點圖pyecharts庫可繪製多種圖形。利用Scatter方法可繪製散點圖,代碼如下:import numpy as npimport pandas as pdimport pyechartsx = [10, 20, 30, 40, 50,60]y = [10, 20, 30, 40, 50,60]scatter =pyecharts.Scatter("散點圖示例")
  • 從官方文檔學pyecharts(Scatter、Overlap)
    在之前,我們學習了許多pyecharts的圖表,我們的學習進度:        基本圖表(2/13)
  • Python 社區裡有趣且實用的庫有哪些?
    01pyechartspyecharts 是一個特別強大的圖表繪製庫,可以快速畫出高質量、漂亮的圖表,是國內 Python 社區非常優秀的開源庫。pyecharts 是用於生成 Echarts 圖表的類庫,Echarts 是百度開源的可視化 JS 庫,用 Echarts 生成的圖可視化效果非常棒,開源熱愛者為了方便 Python 開發者直接與 Python 數據對接,將 Python 與 Echarts 結合在了一起,感謝他們。
  • Pyecharts繪製上下組合圖、左右組合圖、一軸多圖,超經典!
    上下組合from pyecharts.charts import Bar, Line, Gridfrom pyecharts import options# 1、準備數據country = ['巴西', '俄羅斯', '印度', '英國', '西班牙', '伊朗', '德國', '土耳其', '法國']quezheng
  • 超級課程表APP爬蟲,大學生都這麼玩
    性別分布統計性別分布,通過圖可以看出,女生佔大多數,畢竟小姐姐上熱門更為簡單,隨便爆個照,賣個萌,閱讀妥妥的。data1 = df.groupby('gender')['gender'].count()from pyecharts import Pieattr = ['女生', '男生']v1 = list(data1)pie = Pie('用戶性別分布')pie.add("", attr, v1, is_label_show
  • 中國行政單位樹形圖的可視化實戰!
    類的結構示意如下圖,包含一個成員變量info和5個方法,分別用於初始化,請求和解析不同級別的數據。由於對面向對象的理解比較粗淺,這樣的設計只追求簡單實用,不見得完美,你也可以有其他更科學合理的設計方式,代碼也有很多優化的空間。