python的制图

测试数据示例:

day	report_user_cnt	report_user_cnt_2	label
2023-10-01	3	3	欺诈
2023-10-02	2	4	欺诈
2023-10-03	6	5	欺诈
2023-10-04	2	1	正常
2023-10-05	4	3	正常
2023-10-06	4	4	正常
2023-10-07	2	6	正常
2023-10-08	3	7	正常
2023-10-09	3	12	正常
2023-10-10	8	1	正常
2023-10-12	5	2	正常
2023-10-13	6	3	欺诈
2023-10-14	2	4	欺诈
2023-10-15	7	5	欺诈
2023-10-16	9	12	欺诈
2023-10-17	6	15	欺诈
2023-10-18	6	5	欺诈
2023-10-19	5	6	1
2023-10-20	3	2	1
2023-10-21	1	5	1
2023-10-22	1	5	1
2023-10-23	2	5	1
2023-10-24	3	5	1
2023-10-25	1	5	1
2023-10-26	2	5	0
2023-10-28	1	5	0

1、柱形图

plt.bar: 是 Matplotlib 库中用于绘制柱状图的函数之一,它可以接受多组数据作为输入,每组数据可以包含 x 轴和 y 轴的坐标值。

plt.bar() 函数的常用参数如下
x:x 轴的标签,可以是一个数组、列表或者 Series 对象。
height:每个柱子的高度,可以是一个数组、列表或者 Series 对象。
width:每个柱子的宽度,可以是一个数字或者一个数组,如果是一个数组,则每个柱子的宽度可以不同。
color:柱子的颜色,可以是字符串(如 ‘red’)或者 RGB 值(如 (0.1, 0.2, 0.5))。
edgecolor:柱子边缘的颜色,可以是字符串或者 RGB 值。
linewidth:柱子边缘的宽度,可以是一个数字。
tick_label:x 轴的刻度标签,可以是一个数组、列表或者 Series 对象。
align:柱子的对齐方式,可以是 ‘center’、‘edge’ 或者 ‘tip’。
alpha:柱子的透明度,可以是一个 0 到 1 之间的数字。

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取数据
d = pd.read_csv('test.csv', sep = '\t')
x = d['label']
num_fraud = np.sum(d['label'] == 1)
num_normal = np.sum(d['label'] == 0)plt.bar(['Fraud', 'Normal'], [num_fraud, num_normal], color='dodgerblue')
plt.ylabel('num')
plt.xlabel('label')
plt.title('diff label sample count')
plt.show()

在这里插入图片描述

2、折线图

plt.plot 包含的参数有哪些?
x: x 轴坐标值,可以是一个数组、列表或者 Series 对象。
y : y 轴坐标值,可以是一个数组、列表或者 Series 对象。
color: 折线的颜色,可以是字符串(如 ‘red’)或者 RGB 值(如 (0.1, 0.2, 0.5))。
linestyle: 折线的样式,可以是字符串(如 ‘–’)或者一个包含实线、虚线等样式的元组。
linewidth: 折线的宽度,可以是一个数字。
marker: 数据点的标记样式,可以是字符串(如 ‘o’)或者一个包含圆形、正方形等样式的元组。
markersize: 数据点的大小,可以是一个数字。
label: 折线的标签,用于图例中显示。
alpha : 折线的透明度,可以是一个 0 到 1 之间的数字。

代码:
1)折线图展示单条数据

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取数据
d = pd.read_csv('test.csv', sep = '\t')
x = d['day']
y = d['report_user_cnt']plt.figure(figsize=(14, 5))
plt.plot(x, y, c='dodgerblue', lw=3)
plt.title('report_user_cnt')
plt.ylabel('report_user_cnt')
plt.xlabel('day')
plt.show()

在这里插入图片描述
2)展示多条数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取数据
d = pd.read_csv('test.csv', sep = '\t')
x = d['day']
y1 = d['report_user_cnt']
y2 = d['report_user_cnt_2']plt.figure(figsize=(14, 5))
plt.plot(x, y1, c='dodgerblue', lw=3, label = "num2")
plt.plot(x, y2, c='red', label = "num1")
plt.title('report_user_cnt')
plt.ylabel('report_user_cnt')
plt.xlabel('day')
plt.legend()
plt.show()

在这里插入图片描述

3)散点图

plt.scatter是绘制散点图
x : x坐标
y : y坐标
s : 散点的大小
c : 点的颜色
marker :点的标记形状
alpha:散点的透明度
label : 散点图的标签

import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.scatter(np.random.rand(100), # 随机产生0-1之间的100个随机数np.random.rand(100),alpha=0.7,marker= 'o',c= 'b',label= 'mae')
plt.title('Reconstruction MAE')
plt.ylabel('Reconstruction MAE')
plt.xlabel('Index')
plt.show()

在这里插入图片描述

4)创建子图

plt.subplot()是Matplotlib库中用于创建子图的函数,
它的参数有三个,分别是
plt.subplot(nrows, ncols, index)
其中,nrowsncols表示子图网格的行数和列数,
index表示当前子图的位置。
比如plt.subplot(221)表示将当前子图设置为一个2行2列的网格中的第1个子图。
如果nrowsncols的值都小于10,则可以将它们组合成一个两位数的整数,比如plt.subplot(221)表示将当前子图设置为一个2行2列的网格中的第1个子图。
如果nrowsncols的值大于等于10,则需要使用三位数的整数来表示子图位置,比如plt.subplot(2, 2, 1)表示将当前子图设置为一个2行2列的网格中的第1个子图。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 读取数据
d = pd.read_csv('test.csv', sep ='\t')
x = d['day']
y1 = d['report_user_cnt']
y2 = d['report_user_cnt_2']plt.figure(figsize=(14, 5))
plt.subplot(211)
plt.plot(x, y1, c='dodgerblue', linestyle='-', lw=3, label = "num2")plt.ylabel('report_user_cnt')
plt.xlabel('day')
plt.legend()plt.subplot(212)
plt.plot(x, y2, c='red',marker='.',  label = "num1")
plt.ylabel('report_user_cnt_2')
plt.xlabel('day')
plt.legend()plt.show()

在这里插入图片描述

5) python的高级绘图plotly.express

1、绘制直方图

plotly.express库是一个基于plotly库的高级API,它可以让用户轻松地创建各种数据可视化图表,包括散点图、直方图、热力图、等高线图等。通过简单的函数调用,用户可以快速地生成各种图表,并进行自定义设置。此外,plotly.express还支持各种交互式功能,比如缩放、平移、旋转、悬停等,可以让用户更加方便地探索和分析数据。

import plotly.express as px 
df['anomaly'] = df['label'].apply(lambda x: 'outlier' if x==-1  else 'inlier') 
# px.histogram()函数创建直方图,统计每个分数对应的样本个数
fig = px.histogram(df,x='scores',color='anomaly') 
fig.show()

在这里插入图片描述

histogram可以根据标签列表,分组后统计每个标签的个数,十分方便

import plotly.express as px
import pandas as pddf = pd.read_csv('test.csv', sep ='\t')# px.histogram()函数创建直方图
fig = px.histogram(df,x='label',color='label', range_x = [0,3], opacity = 0.8, title = "标签分布")fig.update_layout(title={'text': "标签分布",'y':0.95,'x':0.5,'xanchor': 'center','yanchor': 'top'})fig.show()

在这里插入图片描述

px.histogram()是Plotly Express中的直方图函数,用于绘制一维数据的分布情况。它的常用参数如下:
data_frame: 数据框,包含要绘制的数据。
x: 要绘制的数据列名或者数据列表。
nbins: 直方图的箱子数量,可以是整数或者字符串(如“sturges”、“fd”、“sqrt”等)。
range_x: 要绘制的数据的范围,可以是一个元组或列表,如(0, 10)。
color: 按照某个列对数据进行分组,每组用不同的颜色绘制。
opacity: 直方图的透明度,取值范围为0-1。
barmode: 直方图的模式,可以是“overlay”(默认)、“stack”或“group”。
title: 直方图的标题。

2、创建一个3D散点图

import plotly.express as px
import pandas as pd
df = pd.read_csv('test.csv', sep ='\t')
fig = px.scatter_3d(df,x='petal width (cm)', y='sepal length (cm)', z='sepal width (cm)', color='anomaly') 
fig.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/207262.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录刷题题Day2

刷题的第二天,希望自己能够不断坚持下去,迎来蜕变。😀😀😀 刷题语言:C / Python Day2 任务 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵 II 1 有序数组的平方(重点:双指针…

华为电视盒子 EC6108V9C 刷机成linux系统

场景: 提示:这里简述项目相关背景: 家里装宽带的时候会自带电视盒子,但是由于某些原因电视盒子没有用,于是就只能摆在那里吃土,闲来无事,搞一下 问题描述 提示:这里描述项目中遇到…

使用yolov7进行多图像视频识别

1.yolov7你可以让你简单的部署,比起前几代来说特别简单 #下面是我转换老友记的测试视频,可以看到几乎可以准确预测 2.步骤 1.在github官网下载代码 https://github.com/WongKinYiu/yolov7 2.点击下载权重文件放到项目中 3.安装依赖,我的python版本是3.6的 pip install -r requ…

无mac电脑生成uniapp云打包私钥证书的攻略

uniapp顾名思义是一个跨平台的开发工具,大部分uniapp的开发者,其实并没有mac电脑来开发,但是生成ios的证书,官网的教程却是需要mac电脑的,那么有没有办法无需mac电脑即可生成uniapp云打包的私钥证书呢? 下…

【计算机网络】14、DHCP

文章目录 一、概述1.1 好处 二、概念2.1 分配 IP2.2 控制租赁时间2.3 DHCP 的其他网络功能2.4 IP地址范围和用户类别2.5 安全 三、DHCP 消息3.1 DHCP discover message3.2 DHCP offers a message 如果没有 DHCP,IT管理者必须手动选出可用的 ip,这太耗时了…

和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新

近日,在国科环宇土星云算力服务器产品发布会暨合作伙伴年度会上,和鲸科技与国科环宇正式完成战略伙伴签约仪式,宣布达成战略合作伙伴关系。未来,双方将深化合作,充分发挥在产品和市场方面的互补优势,为企事…

什么是工业物联网(IOT)?这样的IOT平台你需要吗?——青创智通

物联网(IOT)是指在互联网上为传输和共享数据而嵌入传感器和软件的互联设备的广泛性网络。这允许将从物理对象收集的信息(数据)存储在专用服务器或云中。通过分析这些积累的信息,通过提供最优的设备控制和方法,可以实现一个更安全、更方便的社会。在智能家…

【NodeJS】 API Key 实现 短信验证码功能

这里使用的平台是 短信宝整体来讲还是挺麻烦的平台必须企业才行,个人是无法使用该平台的 平台必须完成 身份信息认证 和 企业认证 这里就需要 “营业执照”了 ,没有 “营业执照” 的朋友还是后退一步吧 后端我用的是NodeJS ,使用第三方库 ro…

【办公软件】电脑开机密码忘记了如何重置?

这个案例是家人的电脑,已经使用多年,又是有小孩操作过的,所以电脑密码根本不记得是什么了?那难道这台电脑就废了吗?需要重新装机吗?那里面的资料不是没有了? 为了解决以上问题,一般…

【云原生系列】Kubernetes知识点

目录 概念 基础架构 单master节点 多master节点 组件 Master节点核心组件 其他组件 请求发送流程 插件 核心资源 调度资源 Pod 创建pod组件间调用流程 pod生命周期: 初始化容器 镜像拉取策略 重启策略 钩子函数 探针 探针的实现方式 DownwardAP…

Git的介绍和下载安装

Git的介绍和下载安装 概述 Git是一个分布式版本控制工具, 通常用来管理项目中的源代码文件(Java类、xml文件、html页面等)进行管理,在软件开发过程中被广泛使用 Git可以记录文件修改的历史记录并形成备份从而实现代码回溯, 版本切换, 多人协作, 远程备份的功能Git具有廉价的…

FPGA falsh相关知识总结

1.存储容量是128M/8 Mb16MB 2.有256个sector扇区*每个扇区64KB16MB 3.一页256Byte 4.页编程地址0256 5:在调试SPI时序的时候一定注意,miso和mosi两个管脚只要没发送数据就一定要悬空(处于高组态),不然指令会通过两…

年终好价节入手什么数码合适?盘点23年度值得入手的数码好物

各位科技控和数码迷!时间过得飞快,一眨眼2023年就要过去了,说到年底,当然少不了年终好价节啦!这时候正是更新你的数码装备、升级生活品质的绝佳时机。别管你是不是科技控,工作狂还是生活追求者,…

JavaWeb服务器详解和后端分层解耦

JavaWeb HTTP协议请求数据格式响应数据格式协议解析 Web服务器请求响应请求参数的接收响应 分层解耦IOC&DI入门IOC详解 HTTP协议 超文本传输协议,规定了浏览器和服务器之间数据传输的规则 特点: 基于TCP协议:面向连接,安全 …

npm WARN npm npm does not support Node.js v13.9.0

Microsoft Windows [版本 10.0.19045.2965] (c) Microsoft Corporation。保留所有权利。C:\Users\Administrator>node -v v13.9.0C:\Users\Administrator>npm -v npm WARN npm npm does not support Node.js v13.9.0 npm WARN npm You should probably upgrade to a newe…

正则表达式回溯陷阱

一、匹配场景 判断一个句子是不是正规英文句子 text "I am a student" 一个正常的英文句子如上,英文单词 空格隔开 英文单词 多个英文字符 [a-zA-Z] 空格用 \s 表示 那么一个句子就是单词 空格(一个或者多个,最后那个单词…

力扣:1419. 数青蛙

题目&#xff1a; 代码&#xff1a; class Solution { public:int minNumberOfFrogs(string croakOfFrogs){string s "croak";int ns.size();//首先创建一个哈希表来标明每个元素出现的次数&#xff01;vector<int>hash(n); //不用真的创建一个hash表用一个数…

40.0/jdbc/Java数据连接/jar包运用增删改

目录 40.1. 回顾 40.2. 正文 40.1 为什么需要jdbc 40.2 如何连接mysql数据库 40 .3 jdbc容易出现的错误 40.4 完成删除 40.5 完成修改 40.1. 回顾 1. 自联查询: 自己连接自己的表。注意:一定要为表起别名。 2. 嵌套查询: 把一个查询的结果作为另一个查询的条件值。 3. 组…

高效率:使用DBeaver连接spark-sql

提高运行效率一般采取底层使用spark引擎替换成hive引擎的方式提高效率&#xff0c;但替换引擎配置较为复杂考虑到兼容版本且容易出错&#xff0c;所以本篇将介绍使用DBeaver直接连接spark-sql快速操作hive数据库。 在spark目录下运行以下命令&#xff0c;创建一个SparkThirdSe…

计算机网络:网络层

0 本节主要内容 问题描述 解决思路 1 问题描述 两大问题&#xff08;重点&#xff0c;也是难点&#xff09;&#xff1a; 地址管理&#xff1b;路由选择。 1.1 子问题1&#xff1a;地址管理 网络上的这些主机和节点都需要使用一种规则来区分&#xff0c;就相当于是一种身…