<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Plotly可視化地位岌岌可危?Pandas內(nèi)置繪圖大全來襲!

          共 3793字,需瀏覽 8分鐘

           ·

          2021-11-27 16:27

          公眾號:尤而小屋
          作者:Peter
          編輯:Peter

          大家好,我是Peter~

          之前寫過很多關(guān)于Pandas的文章都是介紹如何使用Pandas來處理數(shù)據(jù),這的確是它的強(qiáng)項。

          30個Pandas高頻使用技巧

          對比SQL,學(xué)習(xí)Pandas操作:groupby機(jī)制

          電商用戶復(fù)購數(shù)據(jù)實戰(zhàn):圖解Pandas的移動函數(shù)shift

          其實,Pandas還有一個內(nèi)置的功能:繪圖。你沒有看錯:Pandas自身就是可以繪圖的。本文詳細(xì)介紹基于Pandas的快速繪圖方法。

          Pandas內(nèi)置繪圖

          參數(shù)

          下面是常見的參數(shù)及解釋,詳細(xì)的請參考官網(wǎng):https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html

          DataFrame.plot(x=None,?y=None,???#?指數(shù)據(jù)框列的標(biāo)簽或位置參數(shù)
          ???????????????kind='line',??#?圖的類型:line bar barh kde area scatter hist box等
          ???????????????ax=None,??#?坐標(biāo)軸
          ???????????????subplots=False,???#?是否繪制子圖?
          ???????????????sharex=None,??#?是否共享xy軸
          ???????????????sharey=False,?
          ???????????????layout=None,??#?布局
          ???????????????figsize=None,??#?大小
          ???????????????use_index=True,??#?索引
          ???????????????title=None,??#?圖形標(biāo)題
          ???????????????grid=None,??#?網(wǎng)格線
          ???????????????legend=True,???#?圖例
          ???????????????style=None,??#?風(fēng)格
          ???????????????logx=False,???#?對數(shù)化
          ???????????????logy=False,?
          ???????????????loglog=False,??#?開啟對數(shù)化
          ???????????????xticks=None,???#?設(shè)置x、y軸刻度值,序列形式(比如列表)
          ???????????????yticks=None,?
          ???????????????xlim=None,???#?設(shè)置坐標(biāo)軸的范圍,列表或元組形式
          ???????????????ylim=None,?
          ???????????????rot=None,??#?設(shè)置軸標(biāo)簽(軸刻度)的顯示旋轉(zhuǎn)度數(shù)
          ???????????????xerr=None,??#?誤差
          ???????????????secondary_y=False,????#?開啟第二y軸(右y軸)
          ???????????????sort_columns=False,???#?以字母表順序繪制各列,默認(rèn)使用前列順序
          ???????????????**kwds)

          模擬數(shù)據(jù)

          本文中主要使用的一份模擬數(shù)據(jù):根據(jù)numpy庫模擬生成的

          折線圖

          繪制最基礎(chǔ)的圖形:折線圖

          基礎(chǔ)折線圖

          禁用圖例

          就是上圖右上角的col1、col2、col3

          #?禁用圖例Legend

          df.plot(legend=False,kind="line")
          plt.show

          調(diào)整兩個軸的名稱

          #?設(shè)置兩個軸的名稱

          df.plot(kind="line",xlabel="x_new",ylabel="y_new")
          plt.show

          柱狀圖

          基礎(chǔ)柱狀圖

          #?寫法1
          df.col1.plot(kind="bar",title="use?pandas?to?make?bar")
          #?寫法2
          df["col1"].plot(kind="bar",title="use?pandas?to?make?bar")
          #?寫法3
          df.col1.plot.bar(title="use?pandas?to?make?bar")

          plt.show()

          多元素柱狀圖

          堆疊柱狀圖

          水平柱狀圖

          當(dāng)然,也可以是堆疊的形式:

          散點圖

          基礎(chǔ)散點圖

          改變大小和顏色

          df.plot(kind="scatter",?#?指定類型
          ????????x="col1",?y="col3",??#?指定兩個軸
          ????????s=df["col2"]?*500,??#?點的大小
          ????????c="r"??#?點的顏色
          ???????)??
          plt.show()

          帶顏色棒的散點圖

          餅圖

          針對Series

          為了繪制餅圖,模擬了一份新數(shù)據(jù):

          series.plot(kind="pie",figsize=(6,6))
          plt.show()

          針對DataFrame

          同樣的,再繪制一份數(shù)據(jù):

          箱型圖

          基礎(chǔ)箱型圖

          自定義箱型圖

          #?自定義顏色
          color?=?{"boxes":?"DarkGreen",
          ?????????"whiskers":?"DarkOrange",
          ?????????"medians":?"DarkBlue",
          ?????????"caps":?"Gray"}

          df.plot.box(color=color,?sym="r+")
          plt.show()

          水平箱型圖

          #?自定義顏色
          color?=?{"boxes":?"DarkGreen",
          ?????????"whiskers":?"DarkOrange",
          ?????????"medians":?"DarkBlue",
          ?????????"caps":?"Gray"}

          df.plot.box(color=color,?
          ????????????vert=False,??#?關(guān)鍵參數(shù)
          ????????????sym="r+")
          plt.show()

          使用boxplot繪箱型圖

          參數(shù)是同樣適用的:

          蜂窩圖

          為了繪制不同的蜂窩圖,模擬了一份新數(shù)據(jù):

          基礎(chǔ)蜂窩圖

          改進(jìn)版蜂窩圖

          df1.plot(
          ????kind="hexbin",
          ????x="A",
          ????y="B",
          ????C="C",??#?顏色深度的表示
          ????reduce_C_function=np.mean,?#?指定不同聚合參數(shù):mean/max/min/sum/std
          ????gridsize=30)
          plt.show()

          直方圖

          #?寫法1
          df.plot(kind="hist",alpha=0.5)
          #?寫法2
          df.plot.hist(alpha=0.5)

          plt.show()

          密度圖

          使用 Series.plot.kde() 和 DataFrame.plot.kde() 可以畫出密度圖:

          1、針對DataFrame的密度圖

          2、針對Series的密度圖

          面積圖

          多子圖

          繪制子圖主要的參數(shù):

          • subplots: 默認(rèn)False, 如果希望每列繪制子圖, 則賦值為True
          • layout: 子圖的布局, 即畫布被橫豎分為幾塊, 如:(2,3)表示2行3列
          • figsize: 整個畫布大小
          df.plot(subplots=True,
          ????????layout=(1,3),??#?1行3列
          ????????figsize=(15,6),
          ????????kind="bar"
          ???????)
          plt.show()

          開啟共享y軸的參數(shù):

          df.plot(subplots=True,
          ????????layout=(1,3),??#?1行3列
          ????????figsize=(15,6),
          ????????kind="bar",
          ????????sharey=True??#?開啟共享y軸
          ???????)
          plt.show()

          散點矩陣圖

          #?單圖導(dǎo)入
          from?pandas.plotting?import?scatter_matrix

          scatter_matrix(df1,alpha=0.5,figsize=(14,6),diagonal="kde")
          plt.show()

          平行分類圖

          為了繪制平行分類圖,我們導(dǎo)入著名的iris數(shù)據(jù)集:

          其中:屬性Name就是我們進(jìn)行分類的數(shù)據(jù)字段

          #?導(dǎo)圖模塊
          from?pandas.plotting?import?parallel_coordinates

          parallel_coordinates(
          ????iris,?#?數(shù)據(jù)
          ????class_column="Name",??#?分類名稱所用字段
          ????color=('#556270',?'#4ECDC4',?'#C7F464')?#?顏色設(shè)置
          )

          plt.show()

          總結(jié)

          我們總結(jié)下Pandas內(nèi)置繪圖的特點:

          • 代碼量少,最大的優(yōu)點
          • 快速簡潔,基本繪圖可以滿足
          • 靜態(tài)化,非動態(tài)可視化
          • 圖片質(zhì)量一般



          相關(guān)閱讀:

          瀏覽 86
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品无码一区二区三区四区久久久 | 亚洲.欧美.丝袜.中文.综合 | 高潮喷水日本片 | 日本激情视频网站免费 | av乱伦网 |