国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

本文教會我們調節Matplotlib子圖尺寸

89542767 / 1001人閱讀

  Matplotlib的能把許多張繪畫到了一個控制界面,這便制定到控制面板切分為一個個子圖,接下來本文關鍵為大家介紹了關于調整Matplotlib子圖尺寸的資料,原文中根據案例編碼推薦的十分詳盡,需用的小伙伴可以參考一下。


  前不久就遇到這種情況,始終忘記了寫,今夜夜深人靜時匯總這波~


  難題


  我堅信,看見這篇文章博主得人,你一定早已會用Matplotlib中的pyplot繪圖。


  比如像這類圖

01.png

  你也應該會調整單個圖的大小了,就是使用如下語句控制單個圖形figure的大小,比如我這里設的8*6的。

  fig3=plt.figure(figsize=(8,6))

  但隨著繼續深入的學習,有時我們很有必要將兩個圖畫在一起,來做對比,所以你也應該會在一個畫布上畫多個子圖了。比如下圖


  即是通過subplot實現


  #展示一下數據
  fig=plt.figure(figsize=(15,7))
  fig1=plt.subplot(231)
  plt.scatter(data.loc[:,'Avg.Area Income'],data.loc[:,'Price'])
  plt.title('Income VS Price')
  fig2=plt.subplot(232)
  plt.scatter(data.loc[:,'Avg.Area House Age'],data.loc[:,'Price'])
  plt.title('Age VS Price')
  fig3=plt.subplot(233)
  plt.scatter(data.loc[:,'Avg.Area Number of Rooms'],data.loc[:,'Price'])
  plt.title('Number VS Price')
  fig4=plt.subplot(234)
  plt.scatter(data.loc[:,'Area Population'],data.loc[:,'Price'])
  plt.title('Population VS Price')
  fig5=plt.subplot(235)
  plt.scatter(data.loc[:,'size'],data.loc[:,'Price'])
  plt.title('size VS Price')
  plt.show()


  目前為止圖好像沒有問題,那問題在哪呢?就是在子圖比較少的時候,整個圖可能會變形,出現下圖情況。

02.png

  這顯然不是我們期望的,我們希望他不要拉長。但是貌似直接通過subplot畫出的子圖無法更改大小,網上給的一些方案也比較麻煩。


  簡便的解決方法


  把這兩個子圖畫在同一個畫布里,這樣即是子圖無法改變,但是外面的畫布大小可以改變,子圖就可以根據外面畫布大小自適應的顯示了。


  對于該圖

03.png

  其原始代碼為


  fig6=plt.subplot(121)
  label0=plt.scatter(X.loc[:,'V1'][y_corrected==0],X.loc[:,'V2'][y_corrected==0])
  label1=plt.scatter(X.loc[:,'V1'][y_corrected==1],X.loc[:,'V2'][y_corrected==1])
  label2=plt.scatter(X.loc[:,'V1'][y_corrected==2],X.loc[:,'V2'][y_corrected==2])
  plt.title("corrected data")
  plt.xlabel('V1')
  plt.ylabel('V2')
  plt.legend((label0,label1,label2),('label0','label1','label2'))
  plt.scatter(centers[:,0],centers[:,1])
  fig7=plt.subplot(122)
  label0=plt.scatter(X.loc[:,'V1'][y==0],X.loc[:,'V2'][y==0])
  label1=plt.scatter(X.loc[:,'V1'][y==1],X.loc[:,'V2'][y==1])
  label2=plt.scatter(X.loc[:,'V1'][y==2],X.loc[:,'V2'][y==2])
  plt.title("labled data")
  plt.xlabel('V1')
  plt.ylabel('V2')
  plt.legend((label0,label1,label2),('label0','label1','label2'))
  plt.scatter(centers[:,0],centers[:,1])
  plt.show()

  可以看到兩個子圖fig6和fig7都是直接使用subplot得到的,所以它變形了。


  修改后應該是這樣的:

04.png

  對應代碼:


  fig=plt.figure(figsize=(11,4))
  fig6=plt.subplot(121)
  label0=plt.scatter(X.loc[:,'V1'][y_corrected==0],X.loc[:,'V2'][y_corrected==0])
  label1=plt.scatter(X.loc[:,'V1'][y_corrected==1],X.loc[:,'V2'][y_corrected==1])
  label2=plt.scatter(X.loc[:,'V1'][y_corrected==2],X.loc[:,'V2'][y_corrected==2])
  plt.title("corrected data")
  plt.xlabel('V1')
  plt.ylabel('V2')
  plt.legend((label0,label1,label2),('label0','label1','label2'))
  plt.scatter(centers[:,0],centers[:,1])
  fig7=plt.subplot(122)
  label0=plt.scatter(X.loc[:,'V1'][y==0],X.loc[:,'V2'][y==0])
  label1=plt.scatter(X.loc[:,'V1'][y==1],X.loc[:,'V2'][y==1])
  label2=plt.scatter(X.loc[:,'V1'][y==2],X.loc[:,'V2'][y==2])
  plt.title("labled data")
  plt.xlabel('V1')
  plt.ylabel('V2')
  plt.legend((label0,label1,label2),('label0','label1','label2'))
  plt.scatter(centers[:,0],centers[:,1])
  plt.show()


  相比原來的代碼就多了第一行的操作,定一個合適畫布的大小就可以方便動態調整子圖了。


  麻煩點的方法


  看到網上是有可以自定義子圖大小的方法的,不過相比我想出來的這個方法,感覺太麻煩了。這個方法能解決我這一類問題了,如果后面遇到需要一個子圖大一個子圖小的問題再多帶帶記錄把。


  總結


  這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128713.html

相關文章

  • python圖像處理圖象的制作詳細說明

      此篇文章主要是給大家介紹了python圖像處理圖象的制作實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪  文章正文  事實上前邊咱們就早已運用了圖象的制作,如:  io.imshow(img)  這一行代碼的本質是運用matplotlib包對圖片開展制作,制作完成后,回到一個matplotlib類型的信息。因而,我們還可以這么寫:  impor...

    89542767 評論0 收藏0
  • Python+matplotlib繪制多子圖的方法詳解

      matplotlib作為一種常見的可視化圖形操作軟件,在日常的生活中應用還是比較的廣泛的,下面跟著小編的視角,帶著大家去詳細解答Python+matplotlib繪制多子圖的方法。  本文速覽  matplotlib.pyplot api繪制子圖  面向對象方式繪制子圖  matplotlib.gridspec.GridSpec繪制子圖  任意位置添加子圖  關于pyplot和面向對象兩種繪圖...

    89542767 評論0 收藏0
  • Python數據分析:直方圖及子圖的繪制

    摘要:直方圖的繪制也需要用到下的,只不過在繪制折線圖時我們采用的是,而繪制直方圖時我們需要采用。利用確定直方圖軸的范圍及間距,為最小值,為最大值,為間距。用繪制,為數據,為直方圖的特性,可有可無。 1.直方圖的繪制也需要用到matplotlib下的pylab,只不過在繪制折線圖時我們采用的是plot(),而繪制直方圖時我們需要采用hist()。由于在繪制過程中缺少真實數據,我在這里采用np....

    stonezhu 評論0 收藏0
  • Python--matplotlib繪圖可視化知識點整理

    摘要:本文作為學習過程中對一些常用知識點的整理,方便查找。所有繪圖操作僅對當前圖和當前坐標有效。表示把圖標分割成的網格。每個對象都是一個擁有自己坐標系統的繪圖區域。避免比例壓縮為橢圓數據可視化入門教程繪圖核心剖析如何調整子圖的大小 本文作為學習過程中對matplotlib一些常用知識點的整理,方便查找。 強烈推薦ipython無論你工作在什么項目上,IPython都是值得推薦的。利用ipyt...

    nifhlheimr 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<