tags: [笔记, Matplotlib]
categories: [笔记, Matplotlib]
开始之前
学习Matplotlib绘图其实就是学习绘图函数中的参数!将参数活学活用,不同的参数搭配会产生不同的化学效应!
相关配置
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
#设置单元格全部行的输出结果
from IPython.core.interactiveshell import InteractiveShell
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 → 散点颜色亮度设置
n = 10 # 用于生成十个点
x = np.random.rand(n)
y = np.random.rand(n)
plt.scatter(x, y, s=100, c='r', marker='*',alpha=0.65)
plt.show()
从cmap中选取了一个叫做’viridis’的调色盘,其作用是,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上
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()
cmap = plt.cm.Spectral用法
例子1
代码plt.scatter(X, Y, c = label, s = 40, cmap = plt.cm.Spectral)中的cmap = plt.cm.Spectral是给定label中不同数值以不同的颜色。
np.random.seed(1) # 产生相同的随机数
X = np.random.randn(1, 10)
Y = np.random.randn(1, 10)
label = np.array([1,1,0,0,0,0,0,1,1,1])
plt.scatter(X, Y, c = label, s = 180, cmap = plt.cm.Spectral);
例子2
3个不同的类别被赋予了3种不同的颜色。原理是通过plt.cm.Spectral(parameters)中的parameters来指定生成的颜色种类,例如plt.cm.Spectral(np.arange(5))将生成5中不同的颜色,而在例子2中,c = label代替了参数parameter。
# label有三种不同的取值
X = np.array(range(1, 7))
Y = np.array(range(1, 7))
label = (1,1,0,0,-1,-1)
plt.scatter(X, Y, c = label, s = 180, cmap = plt.cm.Spectral)
<matplotlib.collections.PathCollection at 0x13fda3da240>