<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>

          Pandas一行代碼繪制25種美圖

          共 6350字,需瀏覽 13分鐘

           ·

          2021-09-18 11:44


          導讀:今天介紹一下,如何用Pandas的一行代碼繪制 25 種美圖。


          作者 / 來源:pythonic生物人




          本文涉及:

          單組折線圖、多組折線圖、單組條形圖、多組條形圖、堆積條形圖、水平堆積條形圖、直方圖、分面直方圖、箱圖、面積圖、堆積面積圖、散點圖、單組餅圖、多組餅圖、分面圖、hexbin圖、andrews_curves圖、核密度圖、parallel_coordinates圖、autocorrelation_plot圖、radviz圖、bootstrap_plot圖、子圖(subplot)、子圖任意排列、圖中繪制數(shù)據(jù)表格

          Pandas可視化主要依賴下面兩個函數(shù):

          • pandas.DataFrame.plot

          https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html?highlight=plot#pandas.DataFrame.plot

          • pandas.Series.plot

          https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.plot.html?highlight=plot#pandas.Series.plot

          可繪制下面幾種圖,注意Dataframe和Series的細微差異:'area', 'bar', 'barh', 'box', 'density', 'hexbin', 'hist', 'kde', 'line', 'pie', 'scatter'


          導入依賴包

          import matplotlib.pyplot as plt 
          import numpy as np
          import pandas as pd
          from pandas import DataFrame,Series
          plt.style.use('dark_background')#設置繪圖風格


          01 單組折線圖

          np.random.seed(0)#使得每次生成的隨機數(shù)相同
          ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
          ts1 = ts.cumsum()#累加
          ts1.plot(kind="line")#默認繪制折線圖



          02 多組折線圖

          np.random.seed(0)
          df = pd.DataFrame(np.random.randn(10004), index=ts.index, columns=list("ABCD"))
          df = df.cumsum()
          df.plot()#默認繪制折線圖



          03 單組條形圖

          df.iloc[5].plot(kind="bar")



          04 多組條形圖

          df2 = pd.DataFrame(np.random.rand(104), columns=["a""b""c""d"])
          df2.plot.bar()



          05 堆積條形圖


          df2.plot.bar(stacked=True)



          06 水平堆積條形圖


          df2.plot.barh(stacked=True)



          07 直方圖


          df4 = pd.DataFrame(
              {
                  "a": np.random.randn(1000) + 1,
                  "b": np.random.randn(1000),
                  "c": np.random.randn(1000) - 1,
              },
              columns=["a""b""c"],
          )
          df4.plot.hist(alpha=0.8)



          08 分面直方圖


          df.diff().hist(color="r", alpha=0.9, bins=50)



          09 箱圖


          df = pd.DataFrame(np.random.rand(105), columns=["A""B""C""D""E"])
          df.plot.box()



          10 面積圖


          df = pd.DataFrame(np.random.rand(104), columns=["a""b""c""d"])
          df.plot.area()



          11 堆積面積圖


          df.plot.area(stacked=False)



          12 散點圖


          ax = df.plot.scatter(x="a", y="b", color="r", label="Group 1",s=90)
          df.plot.scatter(x="c", y="d", color="g", label="Group 2", ax=ax,s=90)



          13 單組餅圖


          series = pd.Series(3 * np.random.rand(4), index=["a""b""c""d"], name="series")
          series.plot.pie(figsize=(66))



          14 多組餅圖


          df = pd.DataFrame(
              3 * np.random.rand(42), index=["a""b""c""d"], columns=["x""y"]
          )
          df.plot.pie(subplots=True, figsize=(84))



          15 分面圖


          import matplotlib as mpl
          mpl.rc_file_defaults()
          plt.style.use('fivethirtyeight')
          from pandas.plotting import scatter_matrix
          df = pd.DataFrame(np.random.randn(10004), columns=["a""b""c""d"])
          scatter_matrix(df, alpha=0.2, figsize=(66), diagonal="kde")
          plt.show()



          16 hexbin圖


          df = pd.DataFrame(np.random.randn(10002), columns=["a""b"])
          df["b"] = df["b"] + np.arange(1000)
          df.plot.hexbin(x="a", y="b", gridsize=25)



          17 andrews_curves圖


          from pandas.plotting import andrews_curves
          mpl.rc_file_defaults()
          data = pd.read_csv("iris.data.txt")
          plt.style.use('dark_background')
          andrews_curves(data, "Name")



          18 核密度圖


          ser = pd.Series(np.random.randn(1000))
          ser.plot.kde()



          19 parallel_coordinates圖


          from pandas.plotting import parallel_coordinates
          data = pd.read_csv("iris.data.txt")
          plt.figure()
          parallel_coordinates(data, "Name")



          20 autocorrelation_plot圖


          from pandas.plotting import autocorrelation_plot
          plt.figure();
          spacing = np.linspace(-9 * np.pi, 9 * np.pi, num=1000)
          data = pd.Series(0.7 * np.random.rand(1000) + 0.3 * np.sin(spacing))
          autocorrelation_plot(data)



          21 radviz圖


          from pandas.plotting import radviz
          data = pd.read_csv("iris.data.txt")
          plt.figure()
          radviz(data, "Name")



          22 bootstrap_plot圖


          from pandas.plotting import bootstrap_plot
          data = pd.Series(np.random.rand(1000))
          bootstrap_plot(data, size=50, samples=500, color="grey")



          23 子圖(subplot)


          df = pd.DataFrame(np.random.randn(10004), index=ts.index, columns=list("ABCD"))
          df.plot(subplots=True, figsize=(66))



          24 子圖任意排列


          df.plot(subplots=True, layout=(23), figsize=(66), sharex=False)


          fig, axes = plt.subplots(44, figsize=(99))
          plt.subplots_adjust(wspace=0.5, hspace=0.5)
          target1 = [axes[0][0], axes[1][1], axes[2][2], axes[3][3]]
          target2 = [axes[3][0], axes[2][1], axes[1][2], axes[0][3]]
          df.plot(subplots=True, ax=target1, legend=False, sharex=False, sharey=False);
          (-df).plot(subplots=True, ax=target2, legend=False, sharex=False, sharey=False)



          25 圖中繪制數(shù)據(jù)表格


          from pandas.plotting import table
          mpl.rc_file_defaults()
          #plt.style.use('dark_background')
          fig, ax = plt.subplots(11)
          table(ax, np.round(df.describe(), 2), loc="upper right", colWidths=[0.20.20.2]);
          df.plot(ax=ax, ylim=(02), legend=None);


          更多pandas可視化精進資料:

          https://pandas.pydata.org/pandas-docs/stable/user_guide/cookbook.html#cookbook-plotting


          延伸閱讀??

          延伸閱讀《深入淺出Pandas

          干貨直達??


          更多精彩??

          在公眾號對話框輸入以下關(guān)鍵詞
          查看更多優(yōu)質(zhì)內(nèi)容!

          讀書 | 書單 | 干貨 | 講明白 | 神操作 | 手把手
          大數(shù)據(jù) | 云計算 | 數(shù)據(jù)庫 | Python | 爬蟲 | 可視化
          AI | 人工智能 | 機器學習 | 深度學習 | NLP
          5G | 中臺 | 用戶畫像 數(shù)學 | 算法 數(shù)字孿生

          據(jù)統(tǒng)計,99%的大咖都關(guān)注了這個公眾號
          ??
          瀏覽 13
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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,蜜臀AV粉嫩av | 天堂新在线 | 成人免费在线网站 | 色婷综合 | 亚洲无码视频日本 |