Python中的plt.scatter函数如何自定义颜色空间(附详细代码)
首先我们看一下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函数如何自定义颜色空间(附详细代码)相关推荐
- Python教学 | Python 中的循环结构(上)【附本文代码和数据】
查看原文:[数据seminar]Python教学 | Python 中的循环结构(上)[附本文代码和数据] (qq.com) Part1引言 上期文章我们向大家介绍了 Python 程序控制结构中的分 ...
- hfss和python_利用Python与HFSS联合仿真设计一个微带天线(附详细代码)
原标题:利用Python与HFSS联合仿真设计一个微带天线(附详细代码) 我们知道HFSS是一款电磁仿真商用软件,用其进行天线的设计十分方便.而该软件也预留了可以运行脚本的接口,使用者可以使用脚本对软 ...
- 用python求期望_Python——EM(期望极大算法)教学(附详细代码与注解)
今天,我们详细的讲一下EM算法. 前提准备 Jupyter notebook 或 Pycharm 火狐浏览器或谷歌浏览器 win7或win10电脑一台 网盘提取csv数据 需求分析 实现高斯混合模型的 ...
- Python中str()与repr()函数的区别——repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,适合开发和调试阶段使用...
Python中str()与repr()函数的区别 from:https://www.jianshu.com/p/2a41315ca47e 在 Python 中要将某一类型的变量或者常量转换为字符串对象 ...
- python中的高阶函数
python中的高阶函数 文章目录: 1 什么是高阶函数? 1.1 高阶函数:一个函数的`函数名`作为参数传给另外一个函数 1.2 高阶函数:一个函数返回值(return)为另外一个`函数` 2 py ...
- 【Python】Python中str()和repr()函数的区别
作用 在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 参考文章:Python 中 str() 和 repr() 函数的 ...
- python中numpy.random.gamma()函数
python中numpy.random.gamma()函数 根据官网,地址如下: https://www.w3cschool.cn/doc_numpy_1_11/numpy_1_11-generate ...
- python中polyfit、poly1d函数
python中polyfit.poly1d函数 一.polyfit函数 函数原型 np.polyfit(x,y,num) 可以对一组数据进行多项式拟合 下面举个例子说明: 其中:np.polyval( ...
- Python中如何定义一个函数
任何编程语言知识它的基础知识都是有些枯燥的,我们一定要多练习, 多实践.下面小编来将一下Python中如何定义一个函数. 最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可 ...
最新文章
- JSP笔记-点击量统计
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
- 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )
- 端口号被占用时,查找占用该端口号的进程并释放端口号
- app崩溃后自动重启
- PowerShell 扩展工具第四波!
- Spark Streaming和Flume集成指南V1.4.1
- 制作U盘纯DOS启动盘文件
- eclipse svn回滚之前版本
- 电商宝:做最懂电商卖家的财务管理“小秘书”
- SQL查询实现差集(补集)运算
- CRYPTO buuctf 摩斯
- 交换机的基础配置学习笔记
- msr和esp分区有什么用
- 团队活动 激励还是鸡肋?
- php 126怎么设置发送邮箱验证码,PHP之邮件发送(126信箱和PHPMailer开源)
- 深度学习_深度学习基础知识_PReLU
- 7-190 第几个幸运数
- 织梦DEDECMS网站搬家教程 数据库备份和还原教程
- 低压谐波滤波器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- brew 下载java8,mac使用brew安装Java8
- springboot+mysql+软件工程课程思政微平台的设计与实现 毕业设计-附源码271113
- 新疆伊犁2010年2月17日特大车祸
- flowable 流程表单_flowable 流程引擎总结
- katalon Record
- Linux系统 对文本的复制粘贴
- 如何利用泛目录/泛目录程序提高搜索引擎收录?
- ⭐算法入门⭐《堆》中等03 —— LeetCode 373. 查找和最小的K对数字
- Day1——提权学习之提权基础
- YZ新版本个人总结 2016.9.2