送你16個matplotlib繪圖實用小技巧(附代碼)

2021-02-19 數據分析
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.arange(0,10)plt.title('這是一個示例標題')plt.plot(x,x*x)plt.show()


2. 添加文字-text
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.arange(-10,11,1)y=x*xplt.plot(x,y)plt.title('這是一個示例標題')# 添加文字plt.text(-2.5,30,'function y=x*x')plt.show()


3. 添加注釋-annotatearrowprops:在xy和xytext之間繪製一個箭頭
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.arange(-10,11,1)y=x*xplt.title('這是一個示例標題')plt.plot(x,y)# 添加注釋plt.annotate('這是一個示例注釋',xy=(0,1),xytext=(-2,22),arrowprops={'headwidth':10,'facecolor':'r'})plt.show()

4. 設置坐標軸名稱-xlabel/ylabel
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.arange(1,20)plt.xlabel('示例x軸')plt.ylabel('示例y軸')plt.plot(x,x*x)plt.show()


5. 添加圖例-legend
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlineplt.plot(x,x)plt.plot(x,x*2)plt.plot(x,x*3)plt.plot(x,x*4)# 直接傳入legendplt.legend(['生活','顏值','工作','金錢'])plt.show()


6. 調整顏色-color
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex=np.arange(1,5)#顏色的幾種方式plt.plot(x,color='g')plt.plot(x+1,color='0.5')plt.plot(x+2,color='#FF00FF')plt.plot(x+3,color=(0.1,0.2,0.3))plt.show()

7. 切換線條樣式-marker
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex=np.arange(1,5)plt.plot(x,marker='o')plt.plot(x+1,marker='>')plt.plot(x+2,marker='s')plt.show()


8. 顯示數學公式-mathtext格式如下: \omega $,中間的將解析出公式中的符號
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineplt.title('chenqionghe')plt.xlim([1,8])plt.ylim([1,5])plt.text(2,4,r'$ \alpha \beta \pi \lambda \omega $',size=25)plt.text(4,4,r'$ \sin(0)=\cos(\frac{\pi}{2}) $',size=25)plt.text(2,2,r'$ \lim_{x \rightarrow y} \frac{1}{x^3} $',size=25)plt.text(4,2,r'$ \sqrt[4]{x}=\sqrt{y} $',size=25)plt.show()


9. 顯示網格-grid
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex='a','b','c','d'y=[15,30,45,10]plt.grid()# 也可以設置顏色、線條寬度、線條樣式# plt.grid(color='g',linewidth='1',linestyle='-.')plt.plot(x,y)plt.show()

10. 調整坐標軸刻度-locator_params

同時調整x軸和y軸:plt.locator_params(nbins=20);

只調整x軸:plt.locator_params(『'x',nbins=20);

只調整y軸:plt.locator_params(『'y',nbins=20)。

import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex=np.arange(0,30,1)plt.plot(x,x)# x軸和y軸分別顯示20個plt.locator_params(nbins=20)plt.show()


11. 調整坐標軸範圍-axis/xlim/ylimaxis:[0,5,0,10],x從0到5,y從0到10xlim:對應參數有xmin和xmax,分別能調整最大值最小值
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex=np.arange(0,30,1)plt.plot(x,x*x)#顯示坐標軸,plt.axis(),4個數字分別代表x軸和y軸的最小坐標,最大坐標#調整x為10到25plt.xlim(xmin=10,xmax=25)plt.plot(x,x*x)plt.show()


12. 調整日期自適應-autofmt_xdate有時候顯示日期會重疊在一起,非常不友好,調用plt.gcf().autofmt_xdate(),將自動調整角度
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt%matplotlib inlinex=pd.date_range('2020/01/01',periods=30)y=np.arange(0,30,1)plt.plot(x,y)plt.gcf().autofmt_xdate()plt.show()


13. 添加雙坐標軸-twinx
import numpy as npimport matplotlib.pyplot as plt%matplotlib inlinex=np.arange(1,20)y1=x*xy2=np.log(x)plt.plot(x,y1)# 添加一個坐標軸,默認0到1plt.twinx()plt.plot(x,y2,'r')plt.show()


14. 填充區域-fill/fill_beween
import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.linspace(0,5*np.pi,1000)y1=np.sin(x)y2=np.sin(2*x)plt.plot(x,y1)plt.plot(x,y2)# 填充plt.fill(x,y1,'g')plt.fill(x,y2,'r')plt.title('這是一個示例標題')plt.show()

import numpy as npimport matplotlib.pyplot as plt# 顯示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlineplt.title('這是一個示例標題')x=np.linspace(0,5*np.pi,1000)y1=np.sin(x)y2=np.sin(2*x)plt.plot(x,y1)plt.plot(x,y2)# 填充plt.fill_between(x,y1,y2,where=y1>y2,interpolate=True)plt.show()


15. 畫一個填充好的形狀-matplotlib.patche
import numpy as npimport matplotlib.pyplot as pltimport matplotlib.patches as mptaches%matplotlib inlinexy1=np.array([0.2,0.2])xy2=np.array([0.2,0.8])xy3=np.array([0.8,0.2])xy4=np.array([0.8,0.8])fig,ax=plt.subplots()#圓形,指定坐標和半徑circle=mptaches.Circle(xy1,0.15)ax.add_patch(circle)#長方形rect=mptaches.Rectangle(xy2,0.2,0.1,color='r')ax.add_patch(rect)#多邊形polygon=mptaches.RegularPolygon(xy3,6,0.1,color='g')ax.add_patch(polygon)# 橢圓ellipse=mptaches.Ellipse(xy4,0.4,0.2,color='c')ax.add_patch(ellipse)ax.axis('equal')plt.show()


16. 切換樣式-plt.style.usematplotlib支持多種樣式,可以通過plt.style.use切換樣式,例如:plt.style.use('ggplot')輸入 plt.style.available 可以查看所有的樣式:
import matplotlib.pyplot as pltplt.style.available

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.patches as mptaches%matplotlib inlineplt.style.use('ggplot')# 新建4個子圖fig,axes=plt.subplots(2,2)ax1,ax2,ax3,ax4=axes.ravel()# 第一個圖x,y=np.random.normal(size=(2,100))ax1.plot(x,y,'o')# 第二個圖x=np.arange(0,10)y=np.arange(0,10)colors=plt.rcParams['axes.prop_cycle']length=np.linspace(0,10,len(colors))for s in length:    ax2.plot(x,y+s,'-')# 第三個圖x=np.arange(5)y1,y2,y3=np.random.randint(1,25,size=(3,5))width=0.25ax3.bar(x,y1,width)ax3.bar(x+width,y2,width)ax3.bar(x+2*width,y3,width)# 第四個圖for i,color in enumerate(colors):    xy=np.random.normal(size=2)ax4.add_patch(plt.Circle(xy,radius=0.3,color=color['color']))ax4.axis('equal')plt.show()


原文地址:https://www.cnblogs.com/chenqionghe/

版權聲明:本號內容部分來自網際網路,轉載請註明原文連結和作者,如有侵權或出處有誤請和我們聯繫。

END

合作請加QQ:365242293  

數據分析(ID : ecshujufenxi )網際網路科技與數據圈自己的微信,也是WeMedia自媒體聯盟成員之一,WeMedia聯盟覆蓋5000萬人群。

相關焦點

  • 16個matplotlib繪圖實用小技巧(附代碼)
    添加標題-titlematplotlib.pyplot 對象中有個 title() 可以設置表格的標題。添加文字-text設置坐標和文字,可以使用 matplotlib.pyplot 對象中 text() 接口。其中 第一、二個參數來設置坐標,第三個參數是設置顯示文本內容。
  • 數據可視化 | 16個 matplotlib 繪圖實用小技巧
    添加文字-text設置坐標和文字,可以使用 matplotlib.pyplot 對象中 text() 接口。其中 第一、二個參數來設置坐標,第三個參數是設置顯示文本內容。因此,需要對不同顏色線條做下標註,我們實用 legend() 接口來實現。
  • ​16個matplotlib繪圖實用小技巧
    as plt%matplotlib inlinex=np.arange(0,30,1)plt.plot(x,x)# x軸和y軸分別顯示20個plt.locator_params(nbins=20)plt.show()輸出:
  • matplotlib繪圖的核心原理講解
    作者:朱小五來自:凹凸數據(ID:alltodata)matplotlib是基於Python語言的開源項目,旨在為Python提供一個數據繪圖包。相信大家都用過它來數據可視化,之前我還分享過25個常用Matplotlib圖的Python代碼。
  • Matplotlib繪圖|快速定義圖表樣式的小技巧
    Matpltlibrc file 設置圖表屬性Matplotlib 在繪圖過程中,每創建一個圖表,都要對該圖表內的樣式(例如 字體大小、顏色、解析度、橫縱坐標刻度、橫縱坐標標籤)設置一次,重複乏味,如下展示的是一個正弦函數曲線X =np.linspace(-np.pi,np.pi,256,endpoint =True)S = np.sin(X)plt.plot
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • Python 繪圖,我只用 Matplotlib(二)
    具體如下代碼:import matplotlib.pyplot as plt  import numpy as np           numpy 是 Python用於數學運算的庫,它是在安裝 matplotlib 時候順帶安裝的。
  • matplotlib繪圖邏輯(上)
    matplotlib繪圖邏輯(上)matplotlib是一個基於Python的繪圖庫,具有對2D的完全支持和對3D圖形的有限支持,在Python科學計算社區中廣泛使用。本文對matplotblib的基本繪圖邏輯進行了比較詳細的梳理。寫作過程中參考了很多資料,由於筆記是斷續的,有些可能忘記引用,在此表達感謝。
  • Python 繪圖庫 Matplotlib 入門代碼實例
    入門代碼實例import matplotlib.pyplot as pltimport numpy as np# 用np.linspace生成50個元素的數組,均勻的分布在(0,2*pi)區間上面x = np.linspace(0, 2 * np.pi, 50)y = np.sin(x)# 把
  • 使用Matplotlib可視化數據的5個強大技巧
    許多人仍然使用Matplotlib作為後端模塊來可視化他們的圖形。在這個故事中,我將給你一些技巧,使用Matplotlib創建一個優秀圖表的5個強大技巧。1. 使用Latex字體默認情況下,我們可以使用Matplotlib提供的一些不錯的字體。但是,有些符號不夠好,不能由Matplotlib創建。例如,符號phi(φ),如圖1所示。
  • Python 繪圖庫 Matplotlib 入門教程
    /Matplotlib是一個Python語言的2D繪圖庫,它支持各種平臺,並且功能強大,能夠輕易繪製出各種專業的圖像。運行環境由於這是一個Python語言的軟體包,因此需要你的機器上首先安裝好Python語言的環境。關於這一點,請自行在網絡上搜索獲取方法。關於如何安裝Matplotlib請參見這裡:Matplotlib Installing。
  • Python matplotlib繪圖示例 - 繪製三維圖形
    Python matplotlib模塊是擴展的MATLAB的一個繪圖工具庫。
  • Matplotlib數據可視化!
    聲明:以下使用的是IPython Shell%matplotlib  # 在IPython Shell調用Matplotlib繪圖接口,需要加這行代碼import matplotlib.pyplot as pltimport numpy
  • 專題第19篇:Python繪圖神器之matplotlib
    我的施工之路今天,繼續施工專題第19篇:Python繪圖神器:matplotlib(上)使用版本本文使用的 matplotlib 版本: 3.1.3使用的 NumPy1 兩套不同的繪圖API使用場景是怎樣的?Matplotlib 構建的繪圖體系是嚴謹的,它提供基本的兩套繪圖API:基於 matplotlib.pyplot 模塊,優點:寫法簡潔,適用交互性強,如Jupyter Notebook,一邊寫一邊出圖的場景;缺點:不適宜在大項目中,構建複雜的GUI圖形場景。
  • 一圖看懂箱線圖,順便帶你鞏固matplotlib繪圖流程!
    今天本文就通過下面這張圖簡單講一下箱線圖沒錯,這張圖也是用matplotlib一點一點的繪製出來的,所以順便鞏固一下matplotlib繪圖的綜合應用。箱線圖怎麼看?下面早起手把手教你如何繪製這樣一張圖,鞏固matplotlib繪圖知識!
  • matplotlib繪圖的完善及美化
    matplotlib繪圖的完善及美化
  • python - matplotlib繪圖
    一、繪圖基礎import matplotlib.pyplot as pltimport numpy as npimport tensorflow as tfimport pandas as pd>'''Matplotlib中的pyplot子庫可用來快速繪製二維圖表figure 創建畫布plot 繪製圖形show 顯示繪圖figure(num,figsize,dpi,facecolor
  • Python 數據分析:Matplotlib 繪圖
    簡介Matplotlib 是 Python 提供的一個繪圖庫,通過該庫我們可以很容易的繪製出折線圖、直方圖、散點圖、餅圖等豐富的統計圖,安裝使用 pip install matplotlib 命令即可,Matplotlib 經常會與 NumPy 一起使用。
  • 「繪圖,讓科學生動起來」:Python-matplotlib繪圖(專題一)python環境搭建篇
    專題一:做個行動派,安裝python及相關軟體——搭建python-matplotlib繪圖環境
  • Matplotlib繪圖遇到時間刻度就犯難?現在,一次性告訴你四種方法
    最近有小夥伴私信我關於matplotlib時間類型刻度的設置問題,第一感覺就是官網有好多例子介紹啊 轉念一想,在實際應用中類似設置還挺多和好多小夥伴詢問,那麼本期就就簡單介紹下Python-matplotlib「刻度(ticker)」 的使用方法,並結合具體例子講解時間刻度設置問題,使小夥伴們定製化刻度不再煩惱