99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代Pyecharts繪制22種超實(shí)用精美圖表【CDA內(nèi)容分享】
Pyecharts繪制22種超實(shí)用精美圖表【CDA內(nèi)容分享】
2021-12-07
收藏

今天CDA為大家分享:Pyecharts繪制22種超實(shí)用精美圖表

作者:俊欣

來源:關(guān)于數(shù)據(jù)分析與可視化

今天來給大家分享一下Pyecharts模塊,說到它我們就不得不提Echarts,它是由百度開源的一款使用JavaScript實(shí)現(xiàn)的開源可視化庫,涵蓋了各種圖表、滿足各類業(yè)務(wù)需求,而pyecharts也就是Python與Echarts結(jié)合之后的產(chǎn)物,封裝了Echarts各類圖表的基本操作,然后通過渲染機(jī)制,輸出一個(gè)包含JS代碼的HTML文件。

Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

01、安裝與導(dǎo)入模塊

說到安裝模塊,我們可以這樣來進(jìn)行,

pip install pyecharts

使用Pyecharts創(chuàng)建圖形的基本步驟是

1. 準(zhǔn)備數(shù)據(jù)

2. 設(shè)計(jì)圖形的樣式、背景顏色

3. Pyecharts繪圖

4. 設(shè)計(jì)圖表的標(biāo)題或者圖例等屬性

5. 導(dǎo)出至html

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


c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values())
    .add_yaxis("商家2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="這是主標(biāo)題", subtitle="這是副標(biāo)題"))
    .render("bar_base.html")
)

出來的結(jié)果是

Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

02、數(shù)據(jù)準(zhǔn)備

import pandas as pd import numpy as np data = pd.DataFrame({'x':np.arange(1,101), 'y':["隨機(jī)生成的數(shù)字"]})


df = pd.read_excel("你的文件的路徑")

03、Pycharts還提供內(nèi)置的數(shù)據(jù)集

Pyecharts內(nèi)部還提供了一些數(shù)據(jù)集,主要包含類別數(shù)據(jù)、時(shí)間數(shù)據(jù)、顏色數(shù)據(jù)、地理數(shù)據(jù)、世界人口數(shù)據(jù)等等,通過choose()方法來隨機(jī)選擇使用哪個(gè)

def choose(self) -> list: return random.choice(
        [ self.clothes, self.drinks, self.phones, self.fruits, self.animal, self.dogs, self.week,
        ]
    )

04、圖形的樣式

說到圖形的樣式,大概都這么幾種

class _ThemeType:
    BUILTIN_THEMES = ["light", "dark", "white"]
    LIGHT = "light" DARK = "dark" WHITE = "white" CHALK: str = "chalk" ESSOS: str = "essos" INFOGRAPHIC: str = "infographic" MACARONS: str = "macarons" PURPLE_PASSION: str = "purple-passion" ROMA: str = "roma" ROMANTIC: str = "romantic" SHINE: str = "shine" VINTAGE: str = "vintage" WALDEN: str = "walden" WESTEROS: str = "westeros" WONDERLAND: str = "wonderland" HALLOWEEN: str = "halloween"

06、設(shè)置標(biāo)題、副標(biāo)題

設(shè)置標(biāo)題以及副標(biāo)題的代碼如下

set_global_opts(title_opts=opts.TitleOpts(title="這是主標(biāo)題",
                                          subtitle="這是副標(biāo)題"))

07、設(shè)置圖例與位置

legend_opts=opts.LegendOpts(type_="scroll", orient="vertical",
                            pos_top="15%",pos_left="7%")) # 圖裂的位置 label_opts=opts.LabelOpts(formatter=": {c}") # 結(jié)果的展現(xiàn)形式

08、導(dǎo)出結(jié)果

render("test.html")


# 如果是在jupyter notebook當(dāng)中 render_notebook()

09、Pyecharts繪圖

堆疊柱狀圖

同個(gè)品類不同類目的柱子可以堆疊起來呈現(xiàn),也就是堆疊的柱狀圖

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values(), stack="stack1")
    .add_yaxis("商家2", Faker.values(), stack="stack1")
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆疊數(shù)據(jù)(全部)"))
    .render("bar_stack_1212.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

當(dāng)然我們也可以部分堆疊,而不是上面這種全部的堆疊

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values(), stack="stack0")
    .add_yaxis("商家2", Faker.values(), stack="stack0")
    .add_yaxis("商家3", Faker.values())
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆疊數(shù)據(jù)(部分)"))
    .render("bar_stack_part.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

柱狀圖的橫坐標(biāo)傾斜一丟丟

有時(shí)候橫坐標(biāo)的標(biāo)識字?jǐn)?shù)較多,X軸上顯示全,我們可以將標(biāo)識的字體稍微傾斜一些

c = (
    Bar()
    .add_xaxis(
        [ "名字相當(dāng)長的X軸標(biāo)簽1", "名字相當(dāng)長的X軸標(biāo)簽2", "名字相當(dāng)長的X軸標(biāo)簽3", "名字相當(dāng)長的X軸標(biāo)簽4", "名字相當(dāng)長的X軸標(biāo)簽5", "名字相當(dāng)長的X軸標(biāo)簽6", ]
    )
    .add_yaxis("商家1", Faker.values())
    .add_yaxis("商家2", Faker.values())
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=15)),
        title_opts=opts.TitleOpts(title="Bar-旋轉(zhuǎn)X軸標(biāo)簽", subtitle="副標(biāo)題"),
    )
    .render("test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

柱狀圖可以自動縮放的

通過底下的滑塊來實(shí)現(xiàn)橫坐標(biāo)的縮放、范圍的調(diào)整等等

c = (
    Bar()
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("商家1", Faker.days_values)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-數(shù)據(jù)縮放(拖快-水平)"),
        datazoom_opts=opts.DataZoomOpts(),
    )
    .render("bar_datazoom_slider.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

當(dāng)然滑塊也可以放在垂直的右側(cè)

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("商家1", Faker.days_values, color=Faker.rand_color())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-DataZoom(滑塊-垂直)"),
        datazoom_opts=opts.DataZoomOpts(orient="vertical"),
    )
    .render("bar_datazoom_slider_vertical.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

我們也可以通過拖動里面的柱子來實(shí)現(xiàn)數(shù)據(jù)縮放、范圍的改變

c = (
    Bar()
    .add_xaxis(Faker.days_attrs)
    .add_yaxis("商家1", Faker.days_values)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-DataZoom(內(nèi)置+外置)"),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
    )
    .render("bar_datazoom_both.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

柱狀圖給X軸Y軸命名的

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values())
    .add_yaxis("商家2", Faker.values())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-XY 軸名稱"),
        yaxis_opts=opts.AxisOpts(name="這個(gè)是 Y 軸"),
        xaxis_opts=opts.AxisOpts(name="這個(gè)是 X 軸"),
    )
    .render("bar_name_xyaxis.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

柱狀圖柱間距離不相同的

柱狀圖當(dāng)中,不同柱子之間的距離也可以不是相同的

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.WHITE))
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values(), gap="0%")
    .add_yaxis("商家2", Faker.values(), gap="0%")
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-柱間距離不同"))
    .render("bar_different_series_gap.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

柱狀圖水平狀態(tài)的

還有水平方向的柱狀圖

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values())
    .add_yaxis("商家2", Faker.values())
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position="right"))
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-水平方向"))
    .render("bar_reversal_axis.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

直方圖

c = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values(), category_gap=0, color=Faker.rand_color())
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方圖"))
    .render("bar_histogram.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

箱型圖

箱型圖更加有利于我們來觀察數(shù)據(jù)的內(nèi)在分布

from pyecharts.charts import Boxplot v1 = [ [850, 740, 950, 1090, 930, 850, 950, 980, 1000, 880, 1000, 980], [980, 940, 960, 940, 900, 800, 850, 880, 950, 840, 830, 800], ] v2 = [ [890, 820, 820, 820, 800, 770, 760, 760, 750, 760, 950, 920], [900, 840, 800, 810, 760, 810, 790, 850, 820, 850, 870, 880], ] c = Boxplot() c.add_xaxis(["A", "B"]) c.add_yaxis("類目1", c.prepare_data(v1)) c.add_yaxis("類目2", c.prepare_data(v2)) c.set_global_opts(title_opts=opts.TitleOpts(title="箱型圖-基本示例")) c.render("boxplot_test.html")
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

日歷圖

日歷圖具體指按照日歷的布局,用顏色展現(xiàn)每一天的數(shù)據(jù),從而比較直觀地看到全年的數(shù)據(jù)情況,例如展示超市全年的銷售額,從而看出具體某個(gè)月份或者某個(gè)星期的銷售額比較低

c = ( Calendar(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC)) .add("", data, calendar_opts=opts.CalendarOpts(range_="2020")) .set_global_opts( title_opts=opts.TitleOpts(title="日歷圖-2020年超市的銷售額"), visualmap_opts=opts.VisualMapOpts( max_=250000, min_=10000, orient="horizontal", is_piecewise=True, pos_top="230px", pos_left="100px", ), ) .render("calendar_test.html") )
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

K線圖

c = (
    Kline(init_opts=opts.InitOpts(theme=ThemeType.ESSOS))
    .add_xaxis(["2020/7/{}".format(i + 1) for i in range(31)])
    .add_yaxis("kline", data)
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(is_scale=True),
        xaxis_opts=opts.AxisOpts(is_scale=True),
        title_opts=opts.TitleOpts(title="K線圖-基本示例"),
    )
    .render("kline_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

漏斗圖

from pyecharts.charts import Funnel c = ( Funnel()
    .add("類目", [list(z) for z in zip(Faker.choose(), Faker.values())])
    .set_global_opts(title_opts=opts.TitleOpts(title="漏斗圖-基本示例"))
    .render("funnel_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

折線圖

c = (
    Line()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values())
    .add_yaxis("商家2", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="折線圖-基本示例"))
    .render("line_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

水球圖

水球圖通常來顯示指標(biāo)的完成程度

from pyecharts.charts import Liquid c = ( Liquid()
    .add("lq", [0.55, 0.75])
    .set_global_opts(title_opts=opts.TitleOpts(title="Liquid-基本示例"))
    .render("liquid_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

詞云圖

c = (
    WordCloud()
    .add(series_name="詞云圖實(shí)例", data_pair=data, word_size_range=[5, 100])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="詞云圖實(shí)例", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
    .render("basic_wordcloud.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

餅圖

c = ( Pie()
    .add("類目", [list(z) for z in zip(Faker.choose(), Faker.values())])
    .set_global_opts(title_opts=opts.TitleOpts(title="餅圖-基本示例"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter=": {c}"))
    .render("pie_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

儀表盤圖

儀表盤的繪制也可以用來展示指標(biāo)的完成程度

from pyecharts.charts import Gauge c = ( Gauge()
    .add("", [("完成率", 70)])
    .set_global_opts(title_opts=opts.TitleOpts(title="儀表盤-基本示例"))
    .render("gauge_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

地圖

c = ( Map()
    .add("商家1", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
    .set_global_opts(title_opts=opts.TitleOpts(title="地圖-基本示例"))
    .render("map_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

漣漪散點(diǎn)圖

c = (
    EffectScatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家1", Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title="漣漪散點(diǎn)圖-基本示例"))
    .render("effectscatter_test.html")
)
Py<a href='/map/echarts/' style='color:#000;font-size:inherit;'>echarts</a>繪制22種超實(shí)用精美圖表

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }