python的制图

news2024/12/27 11:47:42

测试数据示例:

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 pd

df = 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.coloradmin.cn/o/1275488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】MySQL安装 环境初始化

MySQL安装 MYSQL官网 安装完成后,傻瓜下一步即可 配置一下环境变量即可 (1) 初始化MySQL, 管理员身份运行 mysqld --initialize-insecure(2) 注册 mysqld mysqld -install# 如果记录以前的版本执行下面指令 mysqld -remove(3) 启动MySQL服务 // 启动mysql服务 net start …

对 Vision Transformers 及其基于 CNN-Transformer 的变体的综述

A survey of the Vision Transformers and its CNN-Transformer based Variants 摘要1、介绍2、vit的基本概念2.1 patch嵌入2.2 位置嵌入2.2.1 绝对位置嵌入(APE)2.2.2 相对位置嵌入(RPE)2.2.3卷积位置嵌入(CPE) 2.3 注意力机制2.3.1多头自我注意(MSA) 2.4 Transformer层2.4.1 …

NX二次开发UF_MTX2_identity 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX2_identity Defined in: uf_mtx.h void UF_MTX2_identity(double identity_mtx [ 4 ] ) overview 概述 Returns a 2 x 2 identity matrix. 返回一个2 x 2的单位矩阵。 UFUN…

小米摄像头拆机教程

今天拆解一下好久不用的小米摄像头,记录下拆机过程,有需要的小伙伴可以自行查看 一、拆底座 首先拿出底座的四个橡皮塞、把对应的螺丝拧下来就可以了,这一步还是比较简单的 二、拆下底部排线 三、拆下底部电机和底座 按下方的红圈拆掉电机上的…

【设计模式-2.3】创建型——原型模式

说明:本文介绍设计模式中,创建型中的原型模式; 飞机大战 创建型设计模式关注于对象的创建,原型模式也不例外。如简单工厂和工厂模式中提到过的飞机大战这个例子,游戏中飞机、坦克对象会创建许许多多的实例&#xff0…

【AB平台数据建设】从实验平台到数据管道

文章目录 前言1.从AB实验平台聊起(1)AB平台在业务中的发挥那些作用(2)AB平台进行实验工作流介绍 2.实验平台底层数据管道最小MVP解构(1)数据管道数据从哪里来?(2)数据管道的输出数据有哪些? 小结 前言 AB实验平台是一种通过小范围放量,测试不…

leecode 【二】

相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返…

春秋云镜ED01-CMS v20180505 存在任意文件上传漏洞

靶场介绍 春秋云镜ED01-CMS v20180505 存在任意文件上传漏洞 漏洞分析: 文件类型未校验可以任意上传执行文件,获取服务器权限 登录注册界面 Hi-Lo-Yohttp://eci-2ze2qm1cbaon2lylin0q.cloudeci1.ichunqiu.com/registration.php 注册了几个发现注册不…

虚幻学习笔记8—蓝图操作其他虚幻模块

一、前言 蓝图不仅可以相互之间操作和通信,其他的资源、模块也有操作和通信的方法。文本主要针对蓝图和材质、Niagara、编辑器的通信进行讲解。 二、实现 2.1、蓝图和材质 1)首先,在材质蓝图中按住“4鼠标左键”创建一个参数为四维向量的参…

TZOJ 1402 Bitset

答案&#xff1a; #include <stdio.h> int main() {int n 0, j 0; while (scanf("%d", &n) ! EOF && (n>0 && n<1000)) //多组输入{int arr[32], i 0;while (n > 0) {arr[i] n % 2; //除2取余法n / 2;}for (j i -…

基于springboot+vue的秒杀商城(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Java全栈基础篇--集合

集合 集合&#xff1a;集合是java中提供的一种容器&#xff0c;可以用来存储多个数据。 特点&#xff1a; 长度不固定&#xff0c;还可以存储不同的数据&#xff08;但是一般都用同一类型&#xff09; 集合和数组既然都是容器&#xff0c;它们有啥区别呢&#xff1f; 数组的长…

rust持续学习 COW

COW我第一次看见还以为是奶牛 很奇怪是个啥 后来了解到是clone on write 缩写的&#xff0c;大乌龙啊 这个有两种enum,一种是borrow&#xff0c;一种是own rust中&#xff0c;数据读写经常涉及到所有权 这个borrow&#xff0c;很显然&#xff0c;就是不可变借用了 own就是可以写…

稻盛和夫:毕生经验总结出的36条管理经验,总有一条能戳中你。

大家好&#xff0c;我是老原。 进入职场&#xff0c;每个道理在每个人身上都有不同的理解。 大家经理不同&#xff0c;血泪自然不同&#xff0c;毕竟人类的悲喜并不相通&#xff0c;只有总结下来的经验才最有用。 我平时给你们分享的硬干货比较多&#xff0c;这种软道理写的…

【软件推荐】卸载360软件geek;护眼软件flux;

卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/

源码安装mysql

使用源码安装mysql&#xff0c;这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…

冒个泡!OceanBase亮相 2023 新加坡金融科技节

近日&#xff0c;OceanBase 亮相 Singapore Fintech Festival 2023&#xff08;2023 新加坡金融科技节&#xff09;&#xff01;本届新加坡金融科技节于 2023 年 11 月 15 日至 17 日在新加坡博览展览中心举行&#xff0c;展会期间&#xff0c;OceanBase 得到了众多金融科技机构…

WiFi概念介绍

WiFi概念介绍 1. 什么是WLAN2. 什么是Wi-Fi3. Wi-Fi联盟4. WLAN定义范围5. WiFi协议体系6. 协议架构7. WiFi技术的发展7.1 IEEE802.117.2 802.11标准和补充 8. 术语 1. 什么是WLAN Wireless Local Area Network&#xff0c;采用802.11无线技术进行互连的一组计算机和相关设备。…

windows电脑申请hbuilderx打包证书

hbuilderx现在的最新框架uniapp&#xff0c;可以多端开发不同端的应用&#xff0c;包括小程序、公众号、ios app和安卓app&#xff0c;一份代码就可以生成不同的端。 但是不同的端是需要使用不同的端的证书的&#xff0c;是不能使用公共的证书上架的&#xff0c;必须使用自己的…

adb环境搭建(adb下载与安装)

文章目录 前言一、adb下载二、adb安装1.将下载的安装包解压缩2.将解压缩后的文件夹放到自己想存放的目录下&#xff08;不要放到带有中文的目录下&#xff09;——我这放到D盘根目录下3.配置环境变量3.1.鼠标放到 "此电脑"→鼠标右击→选择属性3.2.点击 "高级系…