tags: [笔记, Matplotlib]
categories: [笔记, Matplotlib]


开始之前

学习Matplotlib绘图其实就是学习绘图函数中的参数!将参数活学活用,不同的参数搭配会产生不同的化学效应!

相关配置

  1. %matplotlib inline
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. #设置单元格全部行的输出结果
  5. from IPython.core.interactiveshell import InteractiveShell
  6. InteractiveShell.ast_node_interactivity = "all"

plt.scatter()用法

功能:用于散点图的绘制。

参数
x, y → 散点的坐标
s → 散点大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。
c → 散点的颜色(默认值为蓝色,’b’,其余颜色同plt.plot( ))
marker → 散点样式(默认值为实心圆,’o’,其余样式同plt.plot( ))
alpha → 散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
linewidths →散点的边缘线宽
edgecolors → 散点的边缘颜色
cmap → 指的是matplotlib.colors.Colormap,相当于多个调色盘的合集
norm、vmin、vmax → 散点颜色亮度设置

  1. n = 10 # 用于生成十个点
  2. x = np.random.rand(n)
  3. y = np.random.rand(n)
  4. plt.scatter(x, y, s=100, c='r', marker='*',alpha=0.65)
  5. plt.show()

image.png

从cmap中选取了一个叫做’viridis’的调色盘,其作用是,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上

  1. rng = np.random.RandomState(0)
  2. x = rng.randn(50) # 随机产生50个X轴坐标
  3. y = rng.randn(50) # 随机产生50个Y轴坐标
  4. colors = rng.rand(50) # 随机产生50个用于颜色映射的数值
  5. sizes = 700 * rng.rand(50) # 随机产生50个用于改变散点面积的数值
  6. plt.scatter(x, y, c=colors, s=sizes, alpha=0.3, cmap='viridis')
  7. plt.show()

image.png

cmap = plt.cm.Spectral用法

例子1
代码plt.scatter(X, Y, c = label, s = 40, cmap = plt.cm.Spectral)中的cmap = plt.cm.Spectral是给定label中不同数值以不同的颜色。

  1. np.random.seed(1) # 产生相同的随机数
  2. X = np.random.randn(1, 10)
  3. Y = np.random.randn(1, 10)
  4. label = np.array([1,1,0,0,0,0,0,1,1,1])
  5. plt.scatter(X, Y, c = label, s = 180, cmap = plt.cm.Spectral);

image.png

例子2
3个不同的类别被赋予了3种不同的颜色。原理是通过plt.cm.Spectral(parameters)中的parameters来指定生成的颜色种类,例如plt.cm.Spectral(np.arange(5))将生成5中不同的颜色,而在例子2中,c = label代替了参数parameter。

  1. # label有三种不同的取值
  2. X = np.array(range(1, 7))
  3. Y = np.array(range(1, 7))
  4. label = (1,1,0,0,-1,-1)
  5. plt.scatter(X, Y, c = label, s = 180, cmap = plt.cm.Spectral)
  1. <matplotlib.collections.PathCollection at 0x13fda3da240>

image.png