使用Python库Matplotlib绘制常用图表类型

使用Python库Matplotlib绘图

  • 一、Matplotlib绘图参数设置
    • 1.1 设置分辨率和画布大小
    • 1.2 保存图片并设置边缘留白为紧凑型
    • 1.3 设置坐标轴标签
    • 1.4 画直线设置线宽和颜色
    • 1.5 画子图
      • 1.5.1 通过figure的add_subplot()画子图
      • 1.5.2 通过plt的subplots画子图
  • 二、使用Matplotlib中scatter()方法画散点图
    • 2.1 散点图添加图例和点标签
    • 2.2 结合sklearn中make_blobs()方法绘制二分类数据
  • 三、箱线图
  • 四、双数轴折线图

一、Matplotlib绘图参数设置

1.1 设置分辨率和画布大小

# 分辨率参数-dpi,画布大小参数-figsize
plt.figure(dpi=300,figsize=(24,8))

1.2 保存图片并设置边缘留白为紧凑型

plt.savefig("accuracy.svg", bbox_inches="tight")

1.3 设置坐标轴标签

plt.xlabel("tree_num")
plt.ylabel("accuracy")

1.4 画直线设置线宽和颜色

plt.plot(accuracy, color="b", linewidth="1.6")

1.5 画子图

1.5.1 通过figure的add_subplot()画子图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
fig=plt.figure()
# 画第1个图:折线图
x=np.arange(1,100)
ax1=fig.add_subplot(221)
ax1.plot(x,x*x)
# 画第2个图:散点图
ax2=fig.add_subplot(222)
ax2.scatter(np.arange(0,10), np.random.rand(10))
# 画第3个图:饼图
ax3=fig.add_subplot(223)
ax3.pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f',explode=[0,0.05,0,0])
# 画第4个图:条形图
ax4=fig.add_subplot(224)
ax4.bar([20,10,30,25,15],[25,15,35,30,20],color='b')
plt.show()

1.5.2 通过plt的subplots画子图

fig, ax = plt.subplots(2, 2,figsize=(10,8))
# 画第1个图:折线图
x = np.arange(1, 100)
ax[0][0].plot(x, x * x)
# 画第2个图:散点图
ax[0][1].scatter(np.arange(0, 10), np.random.rand(10))
# 画第3个图:饼图
ax[1][0].pie(x=[15, 30, 45, 10], labels=list('ABCD'), autopct='%.0f', explode=[0, 0.05, 0, 0])
# 画第4个图:条形图
ax[1][1].bar([20, 10, 30, 25, 15], [25, 15, 35, 30, 20], color='b')
plt.show()

二、使用Matplotlib中scatter()方法画散点图

scatter()方法关键参数:

matplotlib.pyplot.scatter(x,  # 散点的坐标y,s=None, # 散点的面积c=None, # 散点的颜色marker=None, # 散点样式,默认值为实心圆,'o'cmap=None, norm=None,vmin=None,vmax=None,alpha=None, # 散点透明度,[0, 1]之间的数,0表示完全透明,1则表示完全不透明linewidths=None, # 散点的边缘线宽verts=None,edgecolors=None, # 散点的边缘颜色hold=None,data=None,**kwargs,
)

2.1 散点图添加图例和点标签

src_in_graph, tgt_in_graph = self.get_valid_source_and_target_list(source_list, target_list)
Xs, Ys = [], []
Xt, Yt = [], []
for s,t in zip(src_in_graph, tgt_in_graph):sx, sy = self.node_dict[s].coordtx, ty = self.node_dict[t].coordXs.append(sx)Ys.append(sy)Xt.append(tx)Yt.append(ty)
plt.scatter(Xs, Ys, c='r', label='source')
for i in range(len(src_in_graph)):plt.text(Xs[i], Ys[i], src_in_graph[i])
plt.scatter(Xt, Yt, c='b', label='target')
for i in range(len(src_in_graph)):plt.text(Xt[i], Yt[i], src_in_graph[i])
plt.legend()
plt.savefig('src-tgt coord.svg', bbox_inches="tight")

2.2 结合sklearn中make_blobs()方法绘制二分类数据

import matplotlib.pyplot as plt
from sklearn import datasetsX, y = datasets.make_blobs(n_samples=150, n_features=2, centers=2, cluster_std=2.05, random_state=47
)
y = np.where(y == 0, 0, 1)  # 将标签转换为0和1
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()

三、箱线图

箱线图(Box plot),也称为盒须图,是一种用于显示数据分布的统计图表。它通过显示数据的五个统计量(最小值、第一四分位数、中位数、第三四分位数和最大值)来概括数据的分布情况。箱线图在以下情况下特别有用:

  • 显示数据分布情况:箱线图提供了对数据分布的直观概览,包括数据的集中趋势、分散程度和对称性。
  • 识别异常值:箱线图通过“须”的长度和离群点(异常值)显示数据中的异常值或极端值。
  • 比较不同组的数据:箱线图可以并排显示多个数据集,方便比较不同组的分布情况。

箱线图应用场景:

  • 探索性数据分析(EDA):在数据分析的初始阶段,使用箱线图可以帮助快速了解数据的基本特征。
  • 比较多个数据集:当需要比较多个数据集的分布情况时,箱线图非常有用。例如,比较不同实验组或不同时间段的数据。
  • 检测数据异常值:箱线图可以帮助识别数据中的异常值,进而决定是否需要处理这些异常值。
  • 可视化报告:在报告和展示数据时,箱线图提供了一个简洁、直观的方式来展示数据的分布情况。

在画箱型图过程中,如图像未显示,是因为数据中存在空值。

四、双数轴折线图

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

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

相关文章

深入解析芯片背后的技术:揭开半导体产业的神秘面纱

引言: 在这个数字化、信息化的时代,芯片已经成为了现代科技发展的重要基石。从智能手机、电脑到汽车、物联网设备,芯片无处不在。然而,对于大多数人来说,芯片背后的技术仍然是一个神秘而遥不可及的领域。本文将深入解…

【Linux-阻塞,非阻塞,异步】

Linux-阻塞,非阻塞,异步 ■ Linux-阻塞-非阻塞 IO-异步■ Linux-阻塞IO■ 阻塞IO简介■ open■ 等待队列■ 示例一:APP阻塞IO读取进入睡眠后-等待队列唤醒进程■■ ■ Linux-非阻塞IO■ 非阻塞IO简介■ open■ 轮询■ 1、select 函数■ 2、po…

python-双胞胎字符串

[问题描述]:给定两个字符串s和t,每次可以任意交换s的奇数位和偶数位的字符,即奇数位的字符可以与任意其它奇数位的字符交换,偶数位的字符同样也可以与任意偶数位的字符的字符交换,问能否在有限的次数的交换下使s变为t?…

智能售货机加盟新契机

加盟智能售货机业务,尤其是在当前技术迭代迅速与市场需求高涨的背景下,正成为众多创业者积极探索的领域。以重庆臻奶惠为代表的企业,正利用其在智能科技与支付资讯的深厚底蕴,为有意涉足该行业的加盟者铺设了一条既稳健又具前瞻性…

2024年5月31日 (周五) 叶子游戏新闻

《Granblue Fantasy: Relink》版本更新 新增可操控角色及功能世嘉股份有限公司现已公开《Granblue Fantasy: Relink》(以下简称 Relink)免费版本更新ver.1.3.1于5月31日(周五)上线的消息。该作是由Cygames Inc.(下称Cy…

【CTF Web】BUUCTF BUU LFI COURSE 1 Writeup(代码审计+PHP+文件包含漏洞)

BUU LFI COURSE 1 1 点击启动靶机。 解法 <?php /*** Created by PhpStorm.* User: jinzhao* Date: 2019/7/9* Time: 7:07 AM*/highlight_file(__FILE__);if(isset($_GET[file])) {$str $_GET[file];include $_GET[file]; }如果GET请求中接收到file参数&#xff0c;就会…

刷代码随想录有感(87):贪心算法——K次取反后的最大化数组和

题干&#xff1a; 代码&#xff1a; class Solution { public:static bool cmp(int a, int b){return abs(a) > abs(b);}int largestSumAfterKNegations(vector<int>& nums, int k) {sort(nums.begin(), nums.end(), cmp);for(int i 0; i < nums.size(); i){…

使用clip模型计算图文相似度

使用clip模型计算图文相似度 clip模型模型架构训练过程应用场景clip安装 计算图文相似度 clip模型 CLIP (Contrastive Language-Image Pretraining) 是由 OpenAI 开发的一种深度学习模型&#xff0c;旨在将自然语言处理和计算机视觉任务结合起来。它通过一种名为对比学习&…

Springboot+vue二手房交易管理系统

Springbootvue二手房交易管理系统&#xff0c;项目用mybatis与数据库&#xff0c;数据库为mysql&#xff0c;16个表结构。有问题直接加我询问&#xff0c;我会一直在线哒。 功能如下&#xff1a; 房东管理 用户管理 房源信息管理&#xff08;可预约和查看评论&#xff09; 看房…

【LLM第7篇】transformer跟bert、gpt、大模型的联系

上一篇讲了transformer的原理&#xff0c;接下来&#xff0c;看看它的衍生物们。 Transformer基本架构 Transformer模型主要由两部分组成&#xff1a;编码器&#xff08;Encoder&#xff09;和解码器&#xff08;Decoder&#xff09;。编码器负责处理输入序列&#xff0c;将其…

NKCTF 2024 webshell_pro

还是正常的HTTP流量 既然是webshell一定是看POST流量 对每一个进行追踪tcp流 最终发现 在 流9 (tcp.stream eq 9)存在 base32 -->base64的流量的加密逻辑 import base64import libnum from Crypto.PublicKey import RSApubkey """-----BEGIN PUBLIC KEY…

文刻创作ai工具在哪下载

文刻创作ai工具是一种基于人工智能技术开发的软件工具&#xff0c;旨在辅助用户进行文创作品的创作和编辑。 领取激活方式&#xff1a;https://qvfbz6lhqnd.feishu.cn/wiki/HsY4wmoffiNp4FkB2AbcpL4tn6d 该工具通过自然语言处理、机器学习等技术&#xff0c;可以生成具有一定创…

MyBatis源码分析--02:SqlSession建立过程

我们再来看看MyBatis使用流程&#xff1a; InputStream inputStream Resources.getResourceAsStream("myBatis_config.xml"); SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream); SqlSession session sqlSessionFactory.op…

Linux主机安全可视化运维(免费方案)

本文介绍如何使用免费的主机安全软件,在自有机房或企业网络实现对Linux系统进行可视化“主机安全”管理。 一、适用对象 本文适用于个人或企业内的Linux服务器运维场景,实现免费、高效、可视化的主机安全管理。提前发现主机存在的安全风险,全方位实时监控主机运行时入侵事…

【惯性传感器imu】—— WHEELTEC的惯导模块的imu的驱动安装配置和运行

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、IMU驱动安装1. 安装依赖2. 源码的下载3. 编译源码(1) 配置固定串口设备(2) 修改luanch文件(3) 编译 二、启动IMU1. 运行imu2. 查看imu数据 总结 前言 WHEE…

C#WPF数字大屏项目实战02--主窗体布局

1、主窗体起始属性 设置有关属性如下&#xff1a; WindowStyle"None"-》无边框 AllowsTransparency"True" -》允许透明 WindowStartupLocation"CenterScreen"-》启动时位于屏幕中间 FontFamily"Microsoft YaHei"-》字体微软雅黑 …

python编程:创建 SQLite 数据库和表的图形用户界面应用程序

在本文中&#xff0c;我将介绍如何使用 wxPython 模块创建一个图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;该应用程序允许用户选择 SQLite 数据库的存放路径、数据库名称、表名称&#xff0c;并动态添加字段及其类型。以下是具体的实现步骤和代码示例。 C:\p…

Unity实现简单的持久化存储

在Unity中&#xff0c;运行过程中的内容是不会保存的&#xff0c;但是如果我们有些游戏数据需要持久化存储&#xff0c;应该怎么办呢&#xff0c;所以Unity为我们提供了一个简单的数据存储的API。 附上代码片段 //写入数据PlayerPrefs.SetInt("IntType", 1);PlayerPr…

FreeRTOS【13】流缓冲区使用

1.开发背景 基于以上的章节&#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用&#xff0c;已经满足了日常使用场景。其中&#xff0c;队列的使用规定了队伍成员的大小&#xff0c;然而现实使用场景下&#xff0c;很多数据不都是定长大小了&#xff0c;例如不定长的通讯…

在AutoDL上部署Yi-34B大模型

在AutoDL上部署Yi-34B大模型 Yi介绍 Yi 系列模型是 01.AI 从零训练的下一代开源大语言模型。Yi 系列模型是一个双语语言模型&#xff0c;在 3T 多语言语料库上训练而成&#xff0c;是全球最强大的大语言模型之一。Yi 系列模型在语言认知、常识推理、阅读理解等方面表现优异。 …