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

          matplotlib 必知的 15 個圖

          共 3040字,需瀏覽 7分鐘

           ·

          2020-11-06 07:41

          Python與算法社區(qū)
          已原創(chuàng)423篇,干貨滿滿
          值得星標


          01

          02

          03


          三步加星標


          施工專題,我已完成20篇,施工系列幾乎覆蓋Python完整技術棧,目標只總結實踐中最實用的東西,直擊問題本質,快速幫助讀者們入門和進階:


          1我的施工計劃
          2數字專題
          3字符串專題
          4列表專題
          5流程控制專題
          6編程風格專題
          7函數使用
          8面向對象編程(上篇)
          9面向對象編程(下篇)
          10十大數據結構
          11包和模塊使用總結
          12Python正則專題總結
          13設計模式
          14Python時間模塊總結
          15?Python 裝飾器
          16?Python 迭代器
          17?Python 生成器
          18?Python 繪圖入門
          19?Python 繪圖神器matplotlib(上)
          20?matplotlib 繪圖(中)

          今天是討論matplotlib繪圖的最后一篇,這次以案例和代碼為主,總結平時最常使用的繪圖API,參考前幾天推送給大家的matplotlib繪圖60案例這本書籍。

          需要導入的模塊,matplotlib繪圖,numpy幾乎是必用的包。
          #?導入numpy模塊
          import?numpy?as?np
          #?導入pyplot模塊
          import?matplotlib.pyplot?as?plt

          案例1基本折線圖


          #?創(chuàng)建序列[1,2,3,...,99]
          X?=?range(100)
          #?X中元素依次取平方
          Y?=?[value?**?2?for?value?in?X]
          plt.plot(X,?Y)
          plt.show()


          案例2正弦圖

          #?[0,2PI)分割為100份
          X?=?np.linspace(0,?2?*?np.pi,?100)
          #?計算正弦值
          Y?=?np.sin(X)
          plt.plot(X,?Y)
          plt.show()


          案例3正弦和余弦圖

          X?=?np.linspace(0,?2?*?np.pi,?100)
          Ya?=?np.sin(X)
          #?計算余弦值
          Yb?=?np.cos(X)
          plt.plot(X,?Ya)
          plt.plot(X,?Yb)
          plt.show()


          案例4 曲線

          def?plot_slope(X,?Y):
          ????#?計算x方向相鄰元素的delta
          ????Xs?=?X[1:]?-?X[:-1]
          ????#?y方向delta
          ????Ys?=?Y[1:]?-?Y[:-1]
          ????plt.plot(X[1:],?Ys?/?Xs)

          X?=?np.linspace(-3,?3,?100)
          Y?=?np.exp(-X?**?2)
          plt.plot(X,?Y)
          plot_slope(X,?Y)
          plt.show()


          案例5讀入數據文件
          數據文件 my_data.txt 為:
          0
          0
          1
          1
          24
          4
          16
          525
          6
          36

          X,?Y?=?[],?[]
          #?按行讀入txt文件
          for?line?in?open('my_data.txt',?'r'):
          ????#?得到一對(x,y)坐標
          ????values?=?[float(s)?for?s?in?line.split()]
          ????X.append(values[0])
          ????Y.append(values[1])

          plt.plot(X,?Y)
          plt.show()


          案例6散點圖

          1024個隨機點的散點圖

          #?隨機生成1024行2列的數據,就是1024個點(x,y)
          data?=?np.random.rand(1024,?2)
          #?繪制散點圖
          plt.scatter(data[:,?0],?data[:,?1])
          plt.show()



          案例7 柱狀圖

          data?=?[5.,?25.,?50.,?20.]
          plt.bar(range(len(data)),?data,?width=0.5)
          plt.show()


          案例8 水平柱狀圖

          data?=?[5.,?25.,?50.,?20.]
          plt.barh(range(len(data)),?data)
          plt.show()


          案例9 系列柱狀圖

          import?numpy?as?np
          import?matplotlib.pyplot?as?plt

          data?=?[[5.,?25.,?50.,?20.],
          [4.,?23.,?51.,?17.],
          [6.,?22.,?52.,?19.]]

          X?=?np.arange(4)

          plt.bar(X?+?0.00,?data[0],?color='b',?width=0.25)
          plt.bar(X?+?0.25,?data[1],?color='g',?width=0.25)
          plt.bar(X?+?0.50,?data[2],?color='r',?width=0.25)

          plt.show()


          案例10 stacked 柱狀圖

          A?=?[5.,?30.,?45.,?22.]
          B?=?[5.,?25.,?50.,?20.]
          X?=?range(4)
          plt.bar(X,?A,?color='b')
          plt.bar(X,?B,?color='r',?bottom=A)

          plt.show()


          案例11 背靠背水平柱狀圖

          women_pop?=?np.array([5.,?30.,?45.,?22.])
          men_pop?=?np.array([5.,?25.,?50.,?20.])
          X?=?np.arange(4)

          plt.barh(X,?women_pop,?color?=?'r')
          plt.barh(X,?-men_pop,?color?=?'b')
          plt.show()
          X?=?np.arange(4)

          plt.barh(X,?women_pop,?color='r')
          plt.barh(X,?-men_pop,?color='b')

          plt.show()


          案例12 餅狀圖

          data?=?[5,?25,?50,?20]
          plt.pie(data)

          plt.show()


          案例13 直方圖

          X?=?np.random.randn(1000)
          plt.hist(X,?bins=20)

          plt.show()

          以上直方圖描述了20個區(qū)間內,點數的頻次。


          案例14 箱形圖

          data?=?np.random.randn(100,?5)
          plt.boxplot(data)

          plt.show()


          箱形圖中紅線表示中位數,往下線是1/4分位數,往上線是3/4分位數,再往下延伸線的長度等于2倍的(上分位數-下分位數),圓圈表示異常點。


          案例15 triangulation 圖

          import?matplotlib.tri?as?tri
          data?=?np.random.rand(100,?2)
          triangles?=?tri.Triangulation(data[:,?0],?data[:,?1])
          plt.triplot(triangles)

          plt.show()


          以上這15個圖是最最基本的matplotlib繪圖,是不能再精簡的了,使用盡可能少的代碼繪圖,方便初學的讀者入門。
          matplotlib的更多顏色、樣式設置、標注設置、多個子圖、3D繪圖、GUI繪圖前面我們也都多少涉及過,在此不再重復。
          如果對以上內容感興趣的讀者,可微信我,獲取《適合練手的matplotlib 60個案例》電子書。

          不必打賞
          給我點個贊
          就心滿意足了
          瀏覽 69
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  婷婷精品在线 | 美女考比视频 | 夜夜撸天天日 | 国内精品视频在 线 | 午夜免费性爱视频 |