首先我们看一下plt.scatter函数的参数:

plt.scatter()函数用于生成一个scatter散点图。

matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, hold=None, **kwargs)

参数:
x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。

s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。

c:表示的是色彩或颜色序列,可选,默认蓝色’b’。但是c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。

marker:MarkerStyle,表示的是标记的样式,可选,默认’o’。

cmap:Colormap,标量或者是一个colormap的名字,cmap仅仅当c是一个浮点数数组的时候才使用。如果没有申明就是image.cmap,可选,默认None。

norm:Normalize,数据亮度在0-1之间,也是只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认None。

vmin,vmax:标量,当norm存在的时候忽略。用来进行亮度数据的归一化,可选,默认None。

alpha:标量,0-1之间,可选,默认None。

linewidths:也就是标记点的长度,默认None。

举例

from sklearn.datasets import make_classification
X, y = make_classification(n_samples=500,n_features=10,n_classes=5,n_informative=4,                          random_state=0)
# 默认绘图
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 8))
plt.scatter(X[:, 0], X[:, 1], marker='o')


指定参数c

plt.figure(figsize=(8, 8))
plt.scatter(X[:, 0], X[:, 1], marker='o', c='g')


参数c 可以等于:[‘c’, ‘b’, ‘g’, ‘r’, ‘m’, ‘y’, ‘k’, ‘w’]

b——blue
c——cyan
g——green
k——black
m——magenta
r——red
w——white
y——yellow

提出问题:

在机器学习的过程中,我们会遇到这样一个问题:

根据不同的数据标签来绘制出不同颜色的散点图;数据标签可以是监督学习中的y,也可以是分类问题中的类别。此时,我们该如何实现呢?
我们先展示一下数据集的样子:

path='./SVM-Project/testSet.txt'
dataset=pd.read_table(path,names=['X1','X2','y'])
print(dataset)
          X1        X2  y
0   3.542485  1.977398 -1
1   3.018896  2.556416 -1
2   7.551510 -1.580030  1
3   2.114999 -0.004466 -1
4   8.127113  1.274372  1
..       ...       ... ..
95  2.609525  0.902979 -1
96  3.263585  1.367898 -1
97  2.912122 -0.202359 -1
98  1.731786  0.589096 -1
99  2.387003  1.573131 -1[100 rows x 3 columns]

接下来我们绘制可视化图形:

内置的颜色图

plt.scatter(np.array(dataset['X1']),np.array(dataset['X2']),c=np.array(dataset['y']))
plt.show()


此时也可以自定义颜色,但是cmap对应的颜色空间为:

按从A—Z—a—z顺序排列:

1)Accent, Blues, BrBG, BuGn, BuPu, CMRmap,Dark2, GnBu, Greens, Greys, OrRd, Oranges, PRGn, Paired, Pastel1, Pastel2, PiYG, PuBu,PuBuGn, PuOr, PuRd, Purples, RdBu RdGy, RdPu,RdYlBu, RdYlGn, Reds, Set1, Set2, Set3, Spectral,Wistia, YlGn, YlGnBu, YlOrBr, YlOrRd
2)afmhot, autumn, binary, bone, brg bwr,
cividis, cool, coolwarm, copper, cubehelix,
flag, gist_earth, gist_gray, gist_heat,
gist_ncar gist_rainbow, gist_stern, gist_yarg,
gnuplot, gnuplot2, gray, hot, hsv, inferno,
jet, magma, nipy_spectral, ocean, pink, plasma,
prism, rainbow, seismic, spring, summer, tab10,
tab20, tab20b, tab20c, terrain, twilight,
twilight_shifted, viridis, winter

使用的时候要注意大小写

自定义颜色空间

mpl.colors.ListedColormap

ListedColormap定制的是离散型色板,颜色会根据色板列表循环。

plt.figure(figsize=(10,6))
cm=mpl.colors.ListedColormap(['g','r'])
plt.scatter(np.array(dataset['X1']),np.array(dataset['X2']),c=np.array(dataset['y']),cmap=cm)
plt.show()

Python中的plt.scatter函数如何自定义颜色空间(附详细代码)相关推荐

  1. Python教学 | Python 中的循环结构(上)【附本文代码和数据】

    查看原文:[数据seminar]Python教学 | Python 中的循环结构(上)[附本文代码和数据] (qq.com) Part1引言 上期文章我们向大家介绍了 Python 程序控制结构中的分 ...

  2. hfss和python_利用Python与HFSS联合仿真设计一个微带天线(附详细代码)

    原标题:利用Python与HFSS联合仿真设计一个微带天线(附详细代码) 我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便.而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软 ...

  3. 用python求期望_Python——EM(期望极大算法)教学(附详细代码与注解)

    今天,我们详细的讲一下EM算法. 前提准备 Jupyter notebook 或 Pycharm 火狐浏览器或谷歌浏览器 win7或win10电脑一台 网盘提取csv数据 需求分析 实现高斯混合模型的 ...

  4. Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...

    Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...

  5. python中的高阶函数

    python中的高阶函数 文章目录: 1 什么是高阶函数? 1.1 高阶函数:一个函数的`函数名`作为参数传给另外一个函数 1.2 高阶函数:一个函数返回值(return)为另外一个`函数` 2 py ...

  6. 【Python】Python中str()和repr()函数的区别

    作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...

  7. python中numpy.random.gamma()函数

    python中numpy.random.gamma()函数 根据官网,地址如下: https://www.w3cschool.cn/doc_numpy_1_11/numpy_1_11-generate ...

  8. python中polyfit、poly1d函数

    python中polyfit.poly1d函数 一.polyfit函数 函数原型 np.polyfit(x,y,num) 可以对一组数据进行多项式拟合 下面举个例子说明: 其中:np.polyval( ...

  9. Python中如何定义一个函数

    任何编程语言知识它的基础知识都是有些枯燥的,我们一定要多练习, 多实践.下面小编来将一下Python中如何定义一个函数. 最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可 ...

最新文章

  1. JSP笔记-点击量统计
  2. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
  3. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )
  4. 端口号被占用时,查找占用该端口号的进程并释放端口号
  5. app崩溃后自动重启
  6. PowerShell 扩展工具第四波!
  7. Spark Streaming和Flume集成指南V1.4.1
  8. 制作U盘纯DOS启动盘文件
  9. eclipse svn回滚之前版本
  10. 电商宝:做最懂电商卖家的财务管理“小秘书”
  11. SQL查询实现差集(补集)运算
  12. CRYPTO buuctf 摩斯
  13. 交换机的基础配置学习笔记
  14. msr和esp分区有什么用
  15. 团队活动 激励还是鸡肋?
  16. php 126怎么设置发送邮箱验证码,PHP之邮件发送(126信箱和PHPMailer开源)
  17. 深度学习_深度学习基础知识_PReLU
  18. 7-190 第几个幸运数
  19. 织梦DEDECMS网站搬家教程 数据库备份和还原教程
  20. 低压谐波滤波器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. brew 下载java8,mac使用brew安装Java8
  2. springboot+mysql+软件工程课程思政微平台的设计与实现 毕业设计-附源码271113
  3. 新疆伊犁2010年2月17日特大车祸
  4. flowable 流程表单_flowable 流程引擎总结
  5. katalon Record
  6. Linux系统 对文本的复制粘贴
  7. 如何利用泛目录/泛目录程序提高搜索引擎收录?
  8. ⭐算法入门⭐《堆》中等03 —— LeetCode 373. 查找和最小的K对数字
  9. Day1——提权学习之提权基础
  10. YZ新版本个人总结 2016.9.2