1. 程式人生 > 其它 >plt.scatter 各引數詳解

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

      

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

因上求緣,果上努力~~~~ 作者:希望每天漲粉,轉載請註明原文連結:https://www.cnblogs.com/BlairGrowing/p/15420068.html