python画散点图

article/2025/11/5 10:34:13

文章目录

  • 前言
  • 一、散点图函数
  • 二、函数参数介绍
  • 三、代码实例
  • 总结


前言

最近在搞聚类算法,所以难免会用到一些散点图的用法,总结一下,方便以后参考。


一、散点图函数

#首先调用一下画图的库
import matplotlib.pyplot as plt
plt.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)

#记得用完了这个函数要show一下,不然成不了图片
plt.show()

二、函数参数介绍

x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。用来表示散点图的横纵坐标,例如一个(100,99)的数据,x=100,y=99

s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小,数值越大对应的图中的点越大。

c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。
写一下常用的颜色所对应的数组:
‘b’ blue
‘g’ green
‘r’ red
‘c’ cyan
‘m’ magenta
‘y’ yellow
‘k’ black
‘w’ white

marker:点的样式,默认小圆圈 ‘o’。
常用的点的样式:
‘.’:点(point marker)
‘,’:像素点(pixel marker)
‘o’:圆形(circle marker)
‘v’:朝下三角形(triangle_down marker)
‘^’:朝上三角形(triangle_up marker)
‘<‘:朝左三角形(triangle_left marker)
‘>’:朝右三角形(triangle_right marker)
‘1’:(tri_down marker)
‘2’:(tri_up marker)
‘3’:(tri_left marker)
‘4’:(tri_right marker)
‘s’:正方形(square marker)
‘p’:五边星(pentagon marker)
‘*’:星型(star marker)
‘h’:1号六角形(hexagon1 marker)
‘H’:2号六角形(hexagon2 marker)
‘+’:+号标记(plus marker)
‘x’:x号标记(x marker)
‘D’:菱形(diamond marker)
‘d’:小型菱形(thin_diamond marker)
‘|’:垂直线形(vline marker)
‘_’:水平线形(hline marker)

cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。
还没搞明白这玩意的用法。

norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用,改变点的亮度。

vmin,vmax:亮度设置,在 norm 参数存在时会忽略。

alpha:透明度设置,0-1 之间,默认 None,即不透明。

linewidths:标记点的长度。

edgecolors:颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。表示的是点的描边的颜色,例如 edgecolors=‘r’ 就是让边的颜色为红色。

plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

**kwargs::其他参数。

三、代码实例

在这里我们先引入一个点的数据命名为 data.txt

151,54
137,55
95,66
156,91
193,101
58,104
133,105
120,118
167,136
110,149
96,174
22,184
60,193
88,198
177,202
213,235
133,249
127,255
70,257
40,273
64,271
168,286
126,325
132,335

读入点的数据并画图,我们这里是用的pandas读的,pandas读出来之后数据格式比较麻烦,我们得对他进行数据处理。

import matplotlib.pyplot as plt
import pandas as pd#读入文件
file_path = "data.txt"
df = pd.read_table(file_path, header=None)#定义 x  y变量
x = []
y = []#定义颜色变量
color = ['c', 'b', 'g', 'r', 'm', 'y', 'k', 'w']#用for循环将文件中的值赋值给x,y
for i in range(len(df[0])):x.append(int(df[0][i].split(',')[0]))y.append(int(df[0][i].split(',')[1]))#画图
plt.scatter(x, y, c=color[1], edgecolors='r')
plt.show()

代码所示图的样式:
在这里插入图片描述
在这里我在附一张用Kmeans聚类算法画的图。
在这里插入图片描述
这里我聚成了4个类,分别用不同的颜色和图形来表示,效果很明显。

总结

散点图的函数参数有很多,但常用的参数为(x,y,c,marker,edgecolors),其余的如果不是特别专业基本用不到。还有就是里面所用到的参数都是list类型,如果不是记得将他们转换。

本文参数的类型介绍参考至菜鸟教程:Matplotlib 散点图,附上网址https://www.runoob.com/matplotlib/matplotlib-scatter.html,如有侵权联系删除。


http://chatgpt.dhexx.cn/article/fmpab2KT.shtml

相关文章

python绘制散点图

前言 散点图是指在回归分析中&#xff0c;数据点在直角坐标系平面上的分布图&#xff0c;散点图表示因变量随自变量而变化的大致趋势&#xff0c;据此可以选择合适的函数对数据点进行拟合。 用两组数据构成多个坐标点&#xff0c;考察坐标点的分布&#xff0c;判断两变量之间…

python绘制散点图,非常全,非常详细(已验证)

少废话&#xff0c;直接上代码 import matplotlib.pyplot as plt import numpy as np # 1. 首先是导入包&#xff0c;创建数据 n 10 x np.random.rand(n) * 2# 随机产生10个0~2之间的x坐标 y np.random.rand(n) * 2# 随机产生10个0~2之间的y坐标 # 2.创建一张figure fig …

2MSL的特点及意义

含义&#xff1a;&#xff12;&#xff2d;&#xff33;&#xff2c;是主动方在第四次挥手后进入等待时间 特点&#xff1a; &#xff11;、在&#xff12;&#xff2d;&#xff33;&#xff2c;时段中&#xff0c;两端的端口都不能用&#xff0c;除非加入SO_REUSEADDR参数&am…

TCP之2MSL

1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间&#xff0c;它是任何报文段被丢弃前在网络内的最长时间 为什么存在MSL TCP报文段以IP数据报在网络内传输&#xff0c;而IP数据报则有限制其生存时间的TTL字段&#xff0c;并且TTL的限制是基于跳数 MSL大小…

TCP的2MSL问题

2MSL (Maximum SegmentLifetime) TIME_WAIT状态的存在有两个理由&#xff1a; 让4次挥手关闭流程更加可靠&#xff1b;4次挥手的最后一个ACK是是由主动关闭方发送出去的&#xff0c;若这个ACK丢失&#xff0c;被动关闭方会再次发一个FIN过来。若主动关闭方能够保持一个2MSL的TI…

linux内核网络TIME_WAIT

目录 四次挥手过程 出现的现象 如何查看信息 TIME_WAIT状态等待的时间 TIME_WAIT 的作用 TIME_WAIT副作用 解决方法 1、将系统值&#xff08;net.ipv4.tcp_max_tw_buckets&#xff09;调小 2、调低TCP_TIMEWAIT_LEN 3、SO_LINGER 4、net.ipv4.tcp_tw_reuse 5、SO_…

TCP四次挥手 2MSL TIME_WAIT详解

TCP四次挥手 & 2MSL & TIME_WAIT详解 TCP四次挥手流程各状态解析 2MSL(2倍最大报文段生成时间)2MSL (Maximum Segment Lifetime) TIME_WAIT状态的存在有两个理由该状态为什么设计在主动关闭这一方?如何正确对待2MSL TIME_WAIT? TCP四次挥手流程 【注意】只要是申请关…

网络编程知识预备(2) —— 三次握手与四次挥手、半连接状态、2MSL

参考&#xff1a;网络编程知识预备(2) ——三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL_行稳方能走远的博客-CSDN博客 目录 一、三次握手 什么是三次握手&#xff1f; 三次握手图解 三次握手过程解析 &#xff08;1&#xff09;第一次握手 &am…

2.5Modelsim

视频链接&#xff1a;https://v.youku.com/v_show/id_XNTkxNDg2MTEwNA.html?x&sharefromandroid&sharekey59e4c264c93de043603d938d05eb7fd10 题目&#xff1a;例2.5.1中2选1数据选择器的仿真步骤 原理与目的&#xff1a; 原理&#xff1a;数据选择是指经过选择&am…

TCP的四次挥手及为什么要等待2MSL

一、四次挥手的详述 1、假设Client端发起中断连接请求&#xff0c;也就是发送FIN报文。 2、Server端接到FIN报文后&#xff0c;意思是说"我Client端没有数据要发给你了"&#xff0c;但是如果你还有数据没有发送完成&#xff0c;则不必急着关闭Socket&#xff0c;可以…

为什么等待2MSL

下面是TCP四次挥手的图 介绍一下上图中的主要关键字 FIN_WAIT1是主动断开连接方发出关闭请求后的状态&#xff0c;表示主动方(主动断开TCP连接的一方)已经没有信息要发送给被动方 CLOSED_WAIT是被动方接收到主动方的关闭请求后返回ACK响应后的状态&#xff0c;此时被动方应该…

释放连接:四次挥手过程?为什么要等待2MSL

储备知识&#xff1a;TCP报文段的首部格式&#xff08;讲下面提到的&#xff09;&#xff1a; 1.FIN&#xff1a;用来释放一个连接。当FIN1时&#xff0c;表示此报文段的发送方的数据已经发送完毕&#xff0c;并要求释放运输连接。 2. 确认ACK&#xff08;acknowledgment&#…

SAML2.0使用

最近在工作中和海外一家公司对接单点登录&#xff0c;用到了SAML2.0协议&#xff0c;目前公司的单点登录 还是比较老的CASE3.5版本&#xff0c;不支持SAML2&#xff0c;要支持也要定制优&#xff0c;由于后面肯定是要升级&#xff0c;所 以不在源码上做调整支持&#xff0c;单独…

TCP第四次挥手后为什么要等待2MSL后才断开链接?等待时间为什么是2MSL?

为何要等待2MSL&#xff1f; 1.假如第四次挥手失败了&#xff0c;因为丢失而未到达服务器会怎样呢&#xff1f;这样&#xff0c;服务器会一直收不到客户端的回应&#xff0c;也就无法得知客户端是否收到了即将要断开连接的请求。客户端此刻还蒙在鼓里&#xff0c;还在等待服务器…

为什么TIME_WAIT状态是2MSL?(2个原因)

为什么TIME_WAIT的时间是2MSL&#xff1f; 先来看看上文中TIME_WAIT状态存在的两个理由。 首先看理由1&#xff0c;为了可靠地实现全双工连接的终止&#xff0c;假设图2-5中客户端发送的最后一个ACK丢失&#xff0c;服务端将重传FIN&#xff0c;为了能够收到这个超时重传的FIN…

Time-wait状态(2MSL)

本文转自&#xff1a;https://blog.csdn.net/overstack/article/details/8833894&#xff0c;尊重原创 三次握手四次挥手图&#xff1a; time_wait之后会等2msl。 什么是2MSL&#xff1a; MSL是Maximum Segment Lifetime,译为“报文最大生存时间”&#xff0c;他是任何报文在…

【Linux网络编程】TCP状态转换、半关闭、2MSL时长

------------->【Linux系统编程/网络编程】(学习目录汇总) <-------------- 目录 1. 三次握手、四次挥手过程中的状态变化2. TCP状态转换图3. 半关闭4. 2MSL时长4.1 为什么要2MSL时长&#xff1f;4.2 端口复用 1. 三次握手、四次挥手过程中的状态变化 先结合下图回顾一下…

TIME_WAIT状态(2MSL)的作用

主动关闭的Socket端会进入TIME_WAIT状态&#xff0c;并且持续2MSL时间长度&#xff0c;MSL就是maximum segment lifetime(最大分节生命期&#xff09;&#xff0c;这是一个IP数据包能在互联网上生存的最长时间&#xff0c;超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分…

【CSS】关于CSS的几种移动端布局方式

关于CSS的几种移动端布局方式 一、移动端布局01.meta视口标签设置02.移动布局的分类有哪些&#xff1f;03.为什么需要二倍图&#xff1f;&#xff08;1&#xff09;物理像素和物理像素比&#xff08;2&#xff09;二倍图&#xff08;根据需要确定多倍图&#xff09;&#xff08…

css:居中的几种布局方式

居中布局的方式 初始状态 <!DOCTYPE html> <html lang"en"> <head><style>.outer {width: 100px;height: 100px;border: 1px solid #f00;}.inner {width: 30px;height: 30px;background-color: #000;}</style> </head> <bo…