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

          安利 5 個拍案叫絕的 Matplotlib 騷操作!

          共 4551字,需瀏覽 10分鐘

           ·

          2020-09-18 19:29

          大家都知道,Matplotlib是Python的可視化庫,功能很強,可以繪制各種圖。今天我們不走尋常路,專挑幾個賊騷的操作分享下
          1. Span Selector
          Span Selector是Matplotlib中的鼠標小部件,widgets是用于包含一些交互功能的python對象。Span Selector可以通過鼠標框選,方便地查看選定區(qū)域的最大值和最小值。
          下面是代碼,首先創(chuàng)建一個基本折線圖作為例子。然后,我們調用SpanSelector方法并使用它來選擇一個區(qū)域,然后在該區(qū)域中顯示最大值和最小值。
             
          import matplotlib.pyplot as plt
          from matplotlib.widgets import SpanSelector
          def onselect(xmin, xmax):
              print(xmin, xmax)
              return xmin, xmax
          fig, ax = plt.subplots()
          ax.plot([1,2,3,4,5,6,7], [105010023,15,28,45])
          span = SpanSelector(ax, onselect, 'horizontal', useblit=True, rectprops=dict(alpha=0.5, facecolor='red'))       
          plt.show()
          下面是具體操作。
          2. Broken Barh
          Broken的水平條形圖是不連續(xù)具有間隙的圖,它可用于數(shù)據(jù)值相差很大的情況下,例如,包含極端溫度范圍的數(shù)據(jù)集。在這種情況下,Broken的水平條形圖非常合適,因為它們可以同時繪制最大和最小范圍。
          python模塊matplotlib.broken_barh()用于繪制Broken的水平條形圖。
             
          import matplotlib.pyplot as plt 
          #Defining the x and y ranges 
          xranges = [(5,5), (20,5),(20,7)] 
          yrange = (2,1
          #Plotting the broken bar chart 
          plt.broken_barh(xranges, yrange, facecolors='green'
          xranges = [(6,2), (17,5),(50,2)] 
          yrange = (15,1
          plt.broken_barh(xranges, yrange, facecolors='orange'
          xranges = [(5,2), (28,5),(40,2)] 
          yrange = (30,1
          plt.broken_barh(xranges, yrange, facecolors='red'
          plt.xlabel('Sales'
          plt.ylabel('Days of the Month'
          plt.show()
          3. Table Demo
          Matplotlib的表格功能也是可以在圖中顯示表格的。當我們希望以條形圖的形式快速查看表格中的值時,這特別方便。表格可以放置在圖表的頂部,底部或側面。
             
          import pandas as pd 
          import numpy as np 
          import matplotlib.pyplot as plt 
          x = np.random.rand(58)*.7 
          plt.plot(x.mean(axis=0), '-o', label='average per column'
          plt.xticks([]) 
          plt.table(cellText=[['%1.2f' % xxx for xxx in xx] for xx in x],cellColours=plt.cm.GnBu(x),loc='bottom'
          plt.show()
          4. Watermark Images
          有時候我們覺得可視化的背景太單調了,想增加點趣味性,比如將與數(shù)據(jù)相關的圖像作為水印覆蓋到可視化圖形上。下面就以NBA的詹皇為例試試水,最后呈現(xiàn)出詹皇的數(shù)據(jù),同時背景是詹皇本人。
          首先,導入要用的數(shù)據(jù)集,圖片和必要的庫pandas。
             
          import numpy as np 
          import matplotlib.image as image 
          import matplotlib.pyplot as plt 
          import pandas as pd 
          df = pd.read_csv('income.csv'
          im = image.imread('Lebron_James.jpeg'# Image
          用pandas過濾掉僅由勒布朗組成的數(shù)據(jù)。
             
          lebron_james = df[df['Name']=='LeBron James']
          然后像下面這樣操作,使用figimage添加水印就ok了。
             
          fig, ax = plt.subplots() 
          ax.grid() 
          ax.plot('Year','earnings ($ million)',data=lebron_james) 
          ax.set_title("LeBron James earnings in US$(millions)"
          fig.figimage(im, 6040,cmap='ocean', alpha=.2
          plt.show()

          5. XKCD Plots
          下面這個操作更有趣味性(更騷)。如果你想讓Matplotlib圖上添加一些扭曲,可以簡單地xkcd()在pyplot對象上調用方法,如下所示。
             
          import pandas as pd 
          import matplotlib.pyplot as plt 
          df = pd.read_csv('https://raw.githubusercontent.com/parulnith/Website-articles-datasets/master/India%20GDP%20Growth%20Rate%20.csv', parse_dates=['Year']) 
          df['Year'] = df['Year'].apply(lambda x: pd.Timestamp(x).strftime('%Y')) 
          #calling xkcd() method 
          plt.xkcd(scale=5, length=400
          df.plot(x='Year',y='GDP Growth (%)',kind='bar'
          plt.ylabel('GDP Growth (%)'
          plt.xticks(rotation=-20
          plt.figure(figsize=(10,8)) 
          plt.show()

          文章參考:

          原作:Parul PandeyPython數(shù)據(jù)科學整理,東哥起飛

          https://towardsdatascience.com/advanced-plots-in-matplotlib-part-1-30dbb02b09ae

          長按掃碼添加“Python小助手”



          ▼點擊成為社區(qū)會員   喜歡就點個在看吧

          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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 | 伊人成仁网站 | 日韩欧美黄色 |