plt.scatter 各參數詳解


scatter 函數原型

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

基礎參數講解

  • x, y → 散點的坐標,float or array-like, shape (n, )
  • s → 散點的面積,float or array-like, shape (n, ), optional
  • c → 散點的顏色(默認值為藍色,'b',其余顏色同plt.plot( ))
  • marker → 散點樣式(默認值為實心圓,'o',其余樣式同plt.plot( ))
  • alpha → 散點透明度([0, 1]之間的數,0表示完全透明,1則表示完全不透明)
  • linewidths →散點的邊緣線寬
  • edgecolors → 散點的邊緣顏色

例子1:

import matplotlib.pyplot as plt import numpy as np import random import matplotlib as mpl
x = np.random.randn(100) y = np.random.randn(100) plt.scatter(x,y)

      

 

例子2:

n = 20 # 生成20個點
x = np.random.rand(n) y = np.random.rand(n) plt.scatter(x, y, s=100, c='r', marker='*',alpha=0.3) plt.show()

      

 

例子3:

plt.scatter(x,y,s=np.power(10*x+10*y,2),c=np.random.randn(100),cmap=mpl.cm.RdYlBu,marker='o')

      

 

高級參數講解

  • cmap → 指的是matplotlib.colors.Colormap,相當於多個調色盤的合集
  • norm、vmin、vmax → 散點顏色亮度設置

例子4:

rng = np.random.RandomState(0) x = rng.randn(50)  # 隨機產生50個X軸坐標
y = rng.randn(50)  # 隨機產生50個Y軸坐標
colors = rng.rand(50)  # 隨機產生50個用於顏色映射的數值
sizes = 700 * rng.rand(50)  # 隨機產生50個用於改變散點面積的數值
plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap='viridis') plt.show()

      

例子5:

x = np.random.randn(20) y = np.random.randn(20) plt.scatter(x,y,c=np.random.randn(20),s=np.power(10*x+10*y,2),cmap='viridis')

      

 

 例子6:通過plt.colorbar( )顯示為顏色條

x = np.random.randn(50) y = np.random.randn(50) colors =  np.random.rand(50) plt.scatter(x, y, c=colors, s=60, alpha=0.3, cmap='viridis') plt.colorbar() # 顯示顏色條
plt.show()

        

 

  為更好的觀察數據,可重設顏色條的映射范圍

  需要用到colors.Normalize( ),使用方法如下:

class matplotlib.colors.Normalize(vmin=None, vmax=None)

  參數 vmin、vmax 分別為要設置的數據范圍的最小值和最大值(注意:設置之后,原來大於vmax的值被“拉低”成vmax;原來小於vmin的值被“拉高”成vmin)

from matplotlib import colors  # 注意!為了調整“色盤”,需要導入colors
x = np.random.randn(50) y = np.random.randn(50) color =  np.random.rand(50) changecolor = colors.Normalize(vmin=0.4, vmax=0.8) plt.scatter(x, y, c=color, s=60, alpha=0.3, cmap='viridis',norm=changecolor) plt.colorbar() # 顯示顏色條
plt.show()

       

看完點個關注唄!!(總結不易)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM