1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        深度講解Python四大常用繪圖庫的“繪圖原理”

        共 4819字,需瀏覽 10分鐘

         ·

        2022-08-01 22:20

        二條:Python自動(dòng)化操作Excel繪制條形圖!
        三條:Python比較兩個(gè)日期的多種方法?。?/strong>

        ↑ 關(guān)注 + 星標(biāo) ,每天學(xué)Python新技能

        后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包

        ?

        人生苦短,快學(xué)Python!

        最近有不少讀者同學(xué)來問我,Python繪圖庫太多,我知不知道學(xué)哪一個(gè)?即使我選擇了某一個(gè)繪圖庫后,我也不知道怎么學(xué),我不知道第一步做什么,也不知道接下來該怎么做,四個(gè)字一學(xué)就忘

        其實(shí)這也是我當(dāng)時(shí)很困擾的一個(gè)問題,我當(dāng)時(shí)在學(xué)習(xí)完numpy和pandas后,就開始了matplotlib的學(xué)習(xí)。我反正是非常崩潰的,每次就感覺繪圖代碼怎么這么多,繪圖邏輯完全一團(tuán)糟,不知道如何動(dòng)手。

        后面隨著自己反復(fù)的學(xué)習(xí),我找到了學(xué)習(xí)Python繪圖庫的方法,那就是學(xué)習(xí)它的繪圖原理。正所謂:“知己知彼,百戰(zhàn)不殆”,學(xué)會(huì)了原理,剩下的就是熟練的問題了。

        今天我們就用一篇文章,帶大家梳理matplotlibseaborn、plotly、pyecharts的繪圖原理,讓大家學(xué)起來不再那么費(fèi)勁!

        1. matplotlib繪圖原理

        關(guān)于matplotlib更詳細(xì)的繪圖說明,大家可以參考下面這篇文章,相信你看了以后一定學(xué)得會(huì)。

        matplotlib繪圖原理:http://suo.im/678FCo

        1)繪圖原理說明

        通過我自己的學(xué)習(xí)和理解,我將matplotlib繪圖原理高度總結(jié)為如下幾步:

        • ① 導(dǎo)庫;
        • ② 創(chuàng)建figure畫布對(duì)象;
        • ③ 獲取對(duì)應(yīng)位置的axes坐標(biāo)系對(duì)象;
        • ④ 調(diào)用axes對(duì)象,進(jìn)行對(duì)應(yīng)位置的圖形繪制;
        • ⑤ 顯示圖形;

        2)案例說明

        # 1.導(dǎo)入相關(guān)庫
        import matplotlib as mpl
        import matplotlib.pyplot as plt
        # 2.創(chuàng)建figure畫布對(duì)象
        figure = plt.figure()
        # 3.獲取對(duì)應(yīng)位置的axes坐標(biāo)系對(duì)象
        axes1 = figure.add_subplot(2,1,1)
        axes2 = figure.add_subplot(2,1,2)
        # 4.調(diào)用axes對(duì)象,進(jìn)行對(duì)應(yīng)位置的圖形繪制
        axes1.plot([1,3,5,7],[4,9,6,8])
        axes2.plot([1,2,4,5],[8,4,6,2])
        # 5.顯示圖形
        figure.show()

        結(jié)果如下:

        2. seaborn繪圖原理

        在這四個(gè)繪圖庫里面,只有matplotlibseaborn存在一定的聯(lián)系,其余繪圖庫之間都沒有任何聯(lián)系,就連繪圖原理也都是不一樣的。

        seaborn是matplotlib的更高級(jí)的封裝。因此學(xué)習(xí)seaborn之前,首先要知道m(xù)atplotlib的繪圖原理。由于seaborn是matplotlib的更高級(jí)的封裝,對(duì)于matplotlib的那些調(diào)優(yōu)參數(shù)設(shè)置,也都可以在使用seaborn繪制圖形之后使用。

        我們知道,使用matplotlib繪圖,需要調(diào)節(jié)大量的繪圖參數(shù),需要記憶的東西很多。而seaborn基于matplotlib做了更高級(jí)的封裝,使得繪圖更加容易,它不需要了解大量的底層參數(shù),就可以繪制出很多比較精致的圖形。不僅如此,seaborn還兼容numpy、pandas數(shù)據(jù)結(jié)構(gòu),在組織數(shù)據(jù)上起了很大作用,從而更大程度上的幫助我們完成數(shù)據(jù)可視化。

        由于seaborn的繪圖原理,和matplotlib的繪圖原理一致,這里也就不詳細(xì)介紹了,大家可以參考上面matplotlib的繪圖原理,來學(xué)習(xí)seaborn究竟如何繪圖,這里還是提供一個(gè)網(wǎng)址給大家。

        seaborn繪圖原理:http://suo.im/5D3VPX

        1)案例說明

        # 1.導(dǎo)入相關(guān)庫
        import seaborn as sns
        import matplotlib.pyplot as plt

        df = pd.read_excel("data.xlsx",sheet_name="數(shù)據(jù)源")

        sns.set_style("dark")
        plt.rcParams["font.sans-serif"] = ["SimHei"]
        plt.rcParams["axes.unicode_minus"] = False
        # 注意:estimator表示對(duì)分組后的銷售數(shù)量求和。默認(rèn)是求均值。
        sns.barplot(x="品牌",y="銷售數(shù)量",data=df,color="steelblue",orient="v",estimator=sum)
        plt.show()

        結(jié)果如下:

        注意:可以看到在上述的繪圖代碼中,你應(yīng)該有這樣一個(gè)感受,圖中既有matplotlib的繪圖代碼,也有seaborn的繪圖代碼。其實(shí)就是這樣的,我們就是按照matplobt的繪圖原理進(jìn)行圖形繪制,只是有些地方改成seaborn特有的代碼即可,剩下的調(diào)整格式,都可以使用matplotlib中的方法進(jìn)行調(diào)整。

        3. plotly繪圖原理

        首先在介紹這個(gè)圖的繪圖原理之前,我們先簡(jiǎn)單介紹一下plotly這個(gè)繪圖庫。

        • plotly是一個(gè)基于javascript的繪圖庫,plotly繪圖種類豐富,效果美觀;
        • 易于保存與分享plotly的繪圖結(jié)果,并且可以與Web無縫集成;
        • ploty默認(rèn)的繪圖結(jié)果,是一個(gè)HTML網(wǎng)頁文件,通過瀏覽器可以直接查看;

        它的繪圖原理和matplotlib、seaborn沒有任何關(guān)系,你需要單獨(dú)去學(xué)習(xí)它。同樣我還是提供了一個(gè)網(wǎng)址給你,讓你更詳細(xì)的學(xué)習(xí)plotly。

        plotly繪圖原理:http://suo.im/5vxNTu

        1)繪圖原理說明

        通過我自己的學(xué)習(xí)和理解,我將plotly繪圖原理高度總結(jié)為如下幾步:

        • ① 繪制圖形軌跡,在ployly里面叫做trace,每一個(gè)軌跡是一個(gè)trace。
        • ② 將軌跡包裹成一個(gè)列表,形成一個(gè)“軌跡列表”。一個(gè)軌跡放在一個(gè)列表中,多個(gè)軌跡也是放在一個(gè)列表中。
        • ③ 創(chuàng)建畫布的同時(shí),并將上述的軌跡列表,傳入到Figure()中。
        • ④ 使用Layout()添加其他的繪圖參數(shù),完善圖形。
        • ⑤ 展示圖形。

        2)案例說明

        import numpy as np
        import pandas as pd
        import plotly as py
        import plotly.graph_objs as go
        import plotly.expression as px
        from plotly import tools

        df = pd.read_excel("plot.xlsx")
        # 1.繪制圖形軌跡,在ployly里面叫做`trace`,每一個(gè)軌跡是一個(gè)trace。
        trace0 = go.Scatter(x=df["年份"],y=df["城鎮(zhèn)居民"],name="城鎮(zhèn)居民")
        trace1 = go.Scatter(x=df["年份"],y=df["農(nóng)村居民"],name="農(nóng)村居民")
        # 2.將軌跡包裹成一個(gè)列表,形成一個(gè)“軌跡列表”。一個(gè)軌跡放在一個(gè)列表中,多個(gè)軌跡也是放在一個(gè)列表中。
        data = [trace0,trace1]
        # 3.創(chuàng)建畫布的同時(shí),并將上述的`軌跡列表`,傳入到`Figure()`中。
        fig = go.Figure(data)
        # 4.使用`Layout()`添加其他的繪圖參數(shù),完善圖形。
        fig.update_layout(
            title="城鄉(xiāng)居民家庭人均收入",
            xaxis_title="年份",
            yaxis_title="人均收入(元)"
        )
        # 5.展示圖形。
        fig.show()

        結(jié)果如下:

        4. pyecharts繪圖原理

        Echarts是一個(gè)由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而python是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。當(dāng)數(shù)據(jù)分析遇上了數(shù)據(jù)可視化時(shí),pyecharts誕生了。

        pyecharts分為v0.5v1兩個(gè)大版本,v0.5和v1兩個(gè)版本不兼容,v1是一個(gè)全新的版本,因此我們的學(xué)習(xí)盡量都是基于v1版本進(jìn)行操作。

        和plotly一樣,pyecharts的繪圖原理也是完全不同于matplotlib和seaborn,我們需要額外的去學(xué)習(xí)它們的繪圖原理,基于此,同樣提供一個(gè)網(wǎng)址給你,讓你更詳細(xì)的學(xué)習(xí)pyecharts。

        pyecharts的繪圖原理:http://suo.im/5S1PF1

        1)繪圖原理說明

        通過我自己的學(xué)習(xí)和理解,我將plotly繪圖原理高度總結(jié)為如下幾步:

        • ① 選擇圖表類型;
        • ② 聲明圖形類并添加數(shù)據(jù);
        • ③ 選擇全局變量;
        • ④ 顯示及保存圖表;

        2)案例說明

        # 1.選擇圖表類型:我們使用的是線圖,就直接從charts模塊中導(dǎo)入Line這個(gè)模塊;
        from pyecharts.charts import Line
        import pyecharts.options as opts
        import numpy as np

        x = np.linspace(0,2 * np.pi,100)
        y = np.sin(x)

        (
         # 2.我們繪制的是Line線圖,就需要實(shí)例化這個(gè)圖形類,直接Line()即可;
         Line()
         # 3.添加數(shù)據(jù),分別給x,y軸添加數(shù)據(jù);
         .add_xaxis(xaxis_data=x)
         .add_yaxis(series_name="繪制線圖",y_axis=y,label_opts=opts.LabelOpts(is_show=False))
         .set_global_opts(title_opts=opts.TitleOpts(title="我是標(biāo)題",subtitle="我是副標(biāo)題",title_link="https://www.baidu.com/"),
                          tooltip_opts=opts.TooltipOpts())
        ).render_notebook() # 4.render_notebook()用于顯示及保存圖表;

        結(jié)果如下:

        小結(jié)

        通過上面的學(xué)習(xí),我相信肯定會(huì)讓大家對(duì)于這些庫的繪圖原理,一定會(huì)有一個(gè)新的認(rèn)識(shí)。

        其實(shí)其實(shí)不管是任何編程軟件的繪圖庫,都有它的繪圖原理。我們與其盲目的去繪制各種各樣的圖形,不如先搞清楚它們的套路后,再去進(jìn)行繪圖庫的圖形練習(xí),這樣下去,我覺得大家會(huì)有一個(gè)很大的提高。



        1. 干貨丨用相似度算法分析和解決字體反爬問題

        2. 只需一個(gè)文件,Python 實(shí)現(xiàn)迷你 Web 框架!


        瀏覽 45
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

          <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            特级一级A片 | 久久爱伊人 | 国产美女一级A片免费 | 精品久久成人无码片 | 日韩三级视频在线观看 | 女女同性女同一区二区三区91 | 青青草手机视频在线 | 国产天美传媒 | 午夜视频在线免费观看 | 少妇一级淫片免费放 |