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

       

看完点个关注呗!!(总结不易)

posted @ 2021-10-18 12:00  多发Paper哈  阅读(4423)  评论(0编辑  收藏  举报
Live2D