python可視化數(shù)據(jù)分析pyecharts初步嘗試
有一個(gè)web+flask項(xiàng)目需要可視化數(shù)據(jù)分析結(jié)果,檢索后發(fā)現(xiàn),pyecharts工具包非常對(duì)口。
Echarts 是一個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而 Python 是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上數(shù)據(jù)可視化時(shí),pyecharts 誕生了。
pyecharts中文文檔有詳細(xì)的說明,這里記錄了個(gè)人更感興趣的部分和對(duì)應(yīng)的使用結(jié)果。
整體說明
pyecharts繪圖的步驟可以簡(jiǎn)化成:
新建合適的圖表對(duì)象,常見的有:
Pie: 餅圖
Bar: 柱狀圖/條狀圖
Boxplot: 箱形圖
HeatMap: 熱力圖
Line: 折線圖/面積圖
Scatter: 散點(diǎn)圖
特別的,可以把多個(gè)圖合在一起的 Overlap: 層疊多圖
更詳細(xì)的可以參考官方文檔-圖表類型
bar = Bar()
后續(xù)的操作都是利用這個(gè)對(duì)象的方法進(jìn)行。
為圖表對(duì)象增加數(shù)據(jù),比如 增加x軸(.add_xaxis)、y軸數(shù)(.add_yaxis)
bar.add_xaxis(["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
全局配置項(xiàng):所有的內(nèi)容都是通過.set_global_opts方法添加.set_global_opts()
bar.set_global_opts(title_opts=opts.TitleOpts(title="主標(biāo)題", subtitle="副標(biāo)題"))
常用的有
TitleOpts:標(biāo)題配置項(xiàng)
LegendOpts:圖例配置項(xiàng)
VisualMapOpts:視覺映射配置項(xiàng)
AxisLineOpts: 坐標(biāo)軸軸線配置項(xiàng)
AxisTickOpts: 坐標(biāo)軸刻度配置項(xiàng)
AxisPointerOpts: 坐標(biāo)軸指示器配置項(xiàng)
AxisOpts:坐標(biāo)軸配置項(xiàng)
SingleAxisOpts:?jiǎn)屋S配置項(xiàng)
詳見官方文檔配置項(xiàng)-全局配置項(xiàng)
例子
Boxplot
箱型圖,一種比較簡(jiǎn)潔的統(tǒng)計(jì)值可視化方法
import random
from pyecharts import options as opts
from pyecharts.charts import Boxplot
import numpy as np
# 離線資源,有網(wǎng)絡(luò)下可以不管
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8889/assets/"
# 長(zhǎng)度為1的str list
x_label = ['隨機(jī)數(shù)']
data = np.random.randint(1000, size=100)
# 這里data應(yīng)為2維數(shù)組,長(zhǎng)度和x_label相同的 list list
data = [data.tolist()]
boxplot = Boxplot()
boxplot.add_xaxis(x)
# 調(diào)用自帶的函數(shù),計(jì)算箱型圖需要的數(shù)據(jù)
y_value = boxplot.prepare_data(y_value)
boxplot.add_yaxis('', y_value)
boxplot.set_global_opts(title_opts=opts.TitleOpts(title='box plot demo'))
boxplot.render()
Bar
Bar比較簡(jiǎn)單,適合入門,設(shè)定一個(gè)x軸,一個(gè)y軸,就可以render了
# -*- coding: utf-8 -*-
from pyecharts.charts import Bar
from pyecharts import options as opts
import numpy as np
# 離線資源,有網(wǎng)絡(luò)下可以不管
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8889/assets/"
# 隨機(jī)數(shù)組,0~255的數(shù)字,10000個(gè)
x = np.random.randint(255, size=1000)
# 統(tǒng)計(jì)直方圖
sum = np.zeros(256, dtype=np.int32)
for cur_x in x:
sum[cur_x] += 1
# 繪圖
bar = Bar()
# x軸 0~255
x_label = [str(label) for label in list(range(256))]
bar.add_xaxis(x_label)
# y軸 頻數(shù), 這里的list一定要是標(biāo)準(zhǔn)int,不能為 np.int,所有 y_axis=list(sum)的話是不可以的
bar.add_yaxis(series_name='頻數(shù)', y_axis=sum.tolist())
# 設(shè)置標(biāo)題
bar.set_global_opts(title_opts=opts.TitleOpts(title='直方圖統(tǒng)計(jì)'))
# 生成網(wǎng)頁,會(huì)在當(dāng)前目錄下生成一個(gè)render.html
bar.render()
HeatMap
熱力圖
這篇已經(jīng)敘述的很好了,以下為引用
注,引文中的代碼是用鏈?zhǔn)綄懙?,官方是這么推薦的。
import random
from pyecharts import options as opts
from pyecharts.charts import HeatMap
from pyecharts.faker import Faker
# 離線資源,有網(wǎng)絡(luò)下可以不管
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8889/assets/"
value = [[i, j, random.randint(0, 50)] for i in range(24) for j in range(7)]
heatmap = (
HeatMap()
.add_xaxis(Faker.clock)
.add_yaxis(
"",
Faker.week,
value,
label_opts=opts.LabelOpts(is_show=True, position="inside"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="基礎(chǔ)熱力圖"),
visualmap_opts=opts.VisualMapOpts(),
)
)
heatmap.render()以上就是python可視化數(shù)據(jù)分析pyecharts初步嘗試的詳細(xì)內(nèi)容,更多關(guān)于python可視化數(shù)據(jù)分析pyecharts的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解
在實(shí)際處理數(shù)據(jù)中,數(shù)據(jù)預(yù)處理操作中,常常需要去除掉重復(fù)的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python 打印自己設(shè)計(jì)的字體的實(shí)例講解
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于Python 打印自己設(shè)計(jì)的字體的實(shí)例講解內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2021-01-01
python pytest進(jìn)階之conftest.py詳解
這篇文章主要介紹了python pytest進(jìn)階之conftest.py詳解,如果我們?cè)诰帉憸y(cè)試用的時(shí)候,每一個(gè)測(cè)試文件里面的用例都需要先登錄后才能完成后面的操作,那么們?cè)撊绾螌?shí)現(xiàn)呢?這就需要我們掌握conftest.py文件的使用了,需要的朋友可以參考下2019-06-06
Python線程中對(duì)join方法的運(yùn)用的教程
這篇文章主要介紹了Python線程中對(duì)join方法的運(yùn)用,join方法是阻塞線程的基本方法,需要的朋友可以參考下2015-04-04
Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解
正則表達(dá)式是一個(gè)很強(qiáng)大的字符串處理工具,幾乎任何關(guān)于字符串的操作都可以使用正則表達(dá)式來完成,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中flags參數(shù)的相關(guān)資料,需要的朋友可以參考下2022-04-04
Python 正則表達(dá)式匹配字符串中的http鏈接方法
今天小編就為大家分享一篇Python 正則表達(dá)式匹配字符串中的http鏈接方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python的numpy模塊實(shí)現(xiàn)邏輯回歸模型
這篇文章主要為大家詳細(xì)介紹了python的numpy模塊實(shí)現(xiàn)邏輯回歸模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Python中bytes字節(jié)串和string字符串之間的轉(zhuǎn)換方法
python中字節(jié)字符串不能格式化,獲取到的網(wǎng)頁有時(shí)候是字節(jié)字符串,需要轉(zhuǎn)化后再解析,下面這篇文章主要給大家介紹了關(guān)于Python中bytes字節(jié)串和string字符串之間的轉(zhuǎn)換方法,需要的朋友可以參考下2022-01-01

