知识周汇 | 用 matplotlib 轻松绘制折线图、散点图、柱状图、直方图
目录
前言
折线图
散点图
柱状图
直方图
组合图:柱状图和折线图
1. 导入库
2. 定义组合图函数
3. 设置中文字体和样式
4. 创建画布和子图
5. 绘制柱状图
6. 绘制折线图
7. 美化图表
8. 保存和显示图表
9. 调用函数
总结
前言
matplotlib
是 Python 中最常用的绘图库之一,无论是数据分析还是科研绘图,它都能轻松搞定。今天我们就来学习如何使用 matplotlib
绘制四种常见的图表:折线图、散点图、柱状图 和 直方图和组合图(柱状图和折线图),并重点讲解组合图。
折线图
import matplotlib.pyplot as plt
import randomfrom pylab import mplmpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置显示中文字体
mpl.rcParams["axes.unicode_minus"] = False # 设置正常显示符号# 数据准备
x = range(24)
y = [random.uniform(13, 20) for i in x] # random.uniform():随机生成13-20范围内的浮点数plt.figure(figsize=(10, 5), dpi=80) # 创建画布
plt.plot(x, y, color='y', linestyle='-', label='温度') # 绘制折线图x_ticks_label = ["{}:00".format(i) for i in x] # 构建x轴刻度标签
y_ticks = range(40) # 构建y轴刻度# 修改x,y轴坐标的刻度显示
plt.xticks(x[::2], x_ticks_label[::2])
plt.yticks(y_ticks[10:20:1])plt.grid(True, linestyle='-', alpha=0.9) # 添加网格
plt.legend(loc=0) # 显示图例# 描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("24小时内温度变化图", fontsize=18)plt.savefig("./plot.jpg") # 保存至指定位置
plt.show() # 显示图像
效果展示
散点图
import matplotlib.pyplot as plt
import random
from pylab import mplmpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置显示中文字体
mpl.rcParams["axes.unicode_minus"] = False # 设置正常显示符号# 数据准备
x = range(100)
y = [random.uniform(13, 20) for i in x] # random.uniform():随机生成13-20范围内的浮点数plt.figure(figsize=(10, 5), dpi=80) # 创建画布
plt.scatter(x, y, color='r', linestyle='-', label='樟树') # 绘制折线图x_ticks_label = ["{}天".format(i) for i in x] # 构建x轴刻度标签
y_ticks = range(25) # 构建y轴刻度# 修改x,y轴坐标的刻度显示
plt.xticks(x[::10], x_ticks_label[::10])
plt.yticks(y_ticks[10:22:2])plt.grid(True, linestyle='-', alpha=0.9) # 添加网格
plt.legend(loc=0) # 显示图例# 描述信息
plt.xlabel("时间/天")
plt.ylabel("温度")
plt.title("24小时内温度变化图", fontsize=18)plt.savefig("./scatter.jpg") # 保存至指定位置
plt.show() # 显示图像
效果展示
柱状图
import matplotlib.pyplot as plt
import randomfrom pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置显示中文字体
mpl.rcParams["axes.unicode_minus"] = False # 设置正常显示符号# 数据准备
x = range(0, 10)
y = [random.randint(35, 45) for i in x] # random.uniform():随机生成13-20范围内的浮点数plt.figure(figsize=(10, 5), dpi=80) # 创建画布
plt.bar(x, y, width=0.5, color=['b', 'r', 'g', 'y', 'c', 'm', 'y', 'k', 'c', 'g']) # 绘制折线图x_ticks_label = ["21{}班".format(i) for i in x] # 构建x轴刻度标签
y_ticks = range(55) # 构建y轴刻度# 修改x,y轴坐标的刻度显示
plt.xticks(x[::1], x_ticks_label[::1])
plt.yticks(y_ticks[0:55:5])plt.grid(True, linestyle=':', alpha=0.3) # 添加网格# 描述信息
plt.xlabel("班级")
plt.ylabel("人数")
plt.title("2021级各班人数柱状图", fontsize=18)plt.savefig("./bar.jpg") # 保存至指定位置
plt.show() # 显示图像
效果展示
直方图
import matplotlib.pyplot as plt
import numpy as npplt.style.use('_mpl-gallery')# 生成数据
np.random.seed(1) # 随机数种子,用于生成随机数
x = 4 + np.random.normal(0, 1.5, 200)
# np.random.normal(loc=0.0, scale=1.0, size=None) #为一个正态分布
# loc(float):均值,对应着这个分布的中心。loc=0说明这一个以y轴为对称轴的正态分布
# scale(float):标准差,对应分布的宽度,scale越大越矮胖,scale越小,越瘦高
# size(int 或者整数元组):输出的值赋在shape里,默认为None# plot:fig, ax = plt.subplots()ax.hist(x, bins=8, linewidth=0.5, edgecolor="white")ax.set(xlim=(0, 10), xticks=np.arange(1, 10),ylim=(0, 56), yticks=np.linspace(0, 56, 9)) # 9个,包含0,间隔为7,7×8=56,即[0,7,14,21,28,35,42,49,56]
# np.arange():返回一个有终点和起点的固定步长的排列
# np.linspace(start, stop, num):用来创建等差数列,num为个数plt.savefig("./直方图.jpg") # 保存至指定位置
plt.show()
效果图
组合图:柱状图和折线图
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import osdef combination_chart(df=pd.DataFrame({'key': [1, 2, 3], 'data1': [1, 2, 3], 'data2': [4, 5, 6]}),x=[1, 2, 3],x_label='月份', rotation=90, y1=[1, 2, 3], y1_label='金额/元', y2=[1, 2, 3],y2_label='数量', picture_save=os.path.abspath(r'.')):# 生成图表plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题sns.set(font='SimHei', style='dark') # 解决Seaborn中文显示问题ax = plt.subplot(1, 1, 1)# 设置图形大小plt.rcParams['figure.figsize'] = (14, 4)fig = plt.figure()# 画柱形图ax1 = fig.add_subplot(1, 1, 1)ax1.set_ylim([0, max(y1) * 1.4])ax1.bar(x, y1, alpha=0.6, color=sns.color_palette('Blues_r', df.shape[0]))ax1.set_ylabel(y1_label, fontsize='11')ax1.set_xlabel(x_label, fontsize='11')ax1.tick_params(labelsize=11)for _x, _y in zip(x, y1):plt.text(_x, _y, int(_y), color='black', fontsize=11, ha='center', va='bottom') # 将数值显示在图形上plt.xticks(x, rotation=rotation) # 设置x刻度# 画折线图ax2 = ax1.twinx() # 组合图必须加这个ax2.set_ylim([-max(y2) * 1.4, max(y2) * 1.4])ax2.plot(x, y2, 'r', ms=5, lw=1, marker='o') # 设置线粗细,节点样式ax2.set_ylabel(y2_label, fontsize='11')ax2.tick_params(labelsize=11)for x, y in zip(x, y2): # # 添加数据标签plt.text(x, y, int(y), ha='center', va='bottom', fontsize=11, rotation=0)sns.despine(left=True, bottom=True, right=True) # 删除坐标轴,默认删除右上plt.savefig(picture_save, dpi=200, bbox_inches='tight')plt.show()combination_chart()
效果图
代码讲解:
1. 导入库
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import os
-
matplotlib.pyplot
:用于绘制图表的核心模块。 -
pandas
:用于数据处理和分析。 -
seaborn
:基于matplotlib
的高级绘图库,提供更美观的默认样式。 -
os
:用于处理文件路径。
2. 定义组合图函数
def combination_chart(df=pd.DataFrame({'key': [1, 2, 3], 'data1': [1, 2, 3], 'data2': [4, 5, 6]}),x=[1, 2, 3],x_label='月份', rotation=90, y1=[1, 2, 3], y1_label='金额/元', y2=[1, 2, 3],y2_label='数量', picture_save=os.path.abspath(r'.')):
-
df
:默认的 DataFrame,包含key
、data1
和data2
三列。 -
x
:x 轴数据,默认值为[1, 2, 3]
。 -
x_label
:x 轴标签,默认值为'月份'
。 -
rotation
:x 轴刻度标签的旋转角度,默认值为90
(垂直显示)。 -
y1
:柱状图的 y 轴数据,默认值为[1, 2, 3]
。 -
y1_label
:柱状图的 y 轴标签,默认值为'金额/元'
。 -
y2
:折线图的 y 轴数据,默认值为[1, 2, 3]
。 -
y2_label
:折线图的 y 轴标签,默认值为'数量'
。 -
picture_save
:图表保存路径,默认值为当前目录。
3. 设置中文字体和样式
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei', style='dark') # 解决Seaborn中文显示问题
-
font.sans-serif
:设置字体为SimHei
(黑体),以支持中文显示。 -
axes.unicode_minus
:解决负号显示为方块的问题。 -
sns.set
:设置seaborn
的字体和样式。
4. 创建画布和子图
ax = plt.subplot(1, 1, 1)
plt.rcParams['figure.figsize'] = (14, 4) # 设置图形大小
fig = plt.figure()
-
plt.subplot(1, 1, 1)
:创建一个 1x1 的子图。 -
figure.figsize
:设置画布大小为宽 14 英寸、高 4 英寸。 -
fig = plt.figure()
:创建一个新的画布。
5. 绘制柱状图
ax1 = fig.add_subplot(1, 1, 1)
ax1.set_ylim([0, max(y1) * 1.4]) # 设置y轴范围
ax1.bar(x, y1, alpha=0.6, color=sns.color_palette('Blues_r', df.shape[0])) # 绘制柱状图
ax1.set_ylabel(y1_label, fontsize='11') # 设置y轴标签
ax1.set_xlabel(x_label, fontsize='11') # 设置x轴标签
ax1.tick_params(labelsize=11) # 设置刻度字体大小
for _x, _y in zip(x, y1):plt.text(_x, _y, int(_y), color='black', fontsize=11, ha='center', va='bottom') # 添加数据标签
plt.xticks(x, rotation=rotation) # 设置x轴刻度
-
ax1.set_ylim
:设置 y 轴范围为 0 到max(y1) * 1.4
。 -
ax1.bar
:绘制柱状图,颜色为蓝色渐变,透明度为 0.6。 -
plt.text
:在每个柱子上方显示数值。 -
plt.xticks
:设置 x 轴刻度和旋转角度。
6. 绘制折线图
ax2 = ax1.twinx() # 创建第二个y轴
ax2.set_ylim([-max(y2) * 1.4, max(y2) * 1.4]) # 设置第二个y轴范围
ax2.plot(x, y2, 'r', ms=5, lw=1, marker='o') # 绘制折线图
ax2.set_ylabel(y2_label, fontsize='11') # 设置第二个y轴标签
ax2.tick_params(labelsize=11) # 设置刻度字体大小
for x, y in zip(x, y2):plt.text(x, y, int(y), ha='center', va='bottom', fontsize=11, rotation=0) # 添加数据标签
-
ax2 = ax1.twinx()
:创建第二个 y 轴,用于绘制折线图。 -
ax2.plot
:绘制红色折线图,节点为圆形。 -
plt.text
:在每个节点上方显示数值。
7. 美化图表
sns.despine(left=True, bottom=True, right=True) # 删除坐标轴
-
sns.despine
:删除左侧、底部和右侧的坐标轴线。
8. 保存和显示图表
plt.savefig(picture_save, dpi=200, bbox_inches='tight') # 保存图表
plt.show() # 显示图表
-
plt.savefig
:将图表保存为图片,分辨率为 200 DPI。 -
plt.show
:显示图表。
9. 调用函数
combination_chart()
-
调用
combination_chart
函数,使用默认参数生成组合图。
总结
这段代码的核心功能是:
-
绘制一个组合图,包含柱状图和折线图。
-
柱状图展示
y1
数据,折线图展示y2
数据。 -
支持中文显示、数据标签、双 y 轴等功能。
-
保存图表并显示。
通过这段代码,你可以快速绘制一张美观的组合图,并掌握 matplotlib
和 seaborn
的高级用法!
相关文章:
知识周汇 | 用 matplotlib 轻松绘制折线图、散点图、柱状图、直方图
目录 前言 折线图 散点图 柱状图 直方图 组合图:柱状图和折线图 1. 导入库 2. 定义组合图函数 3. 设置中文字体和样式 4. 创建画布和子图 5. 绘制柱状图 6. 绘制折线图 7. 美化图表 8. 保存和显示图表 9. 调用函数 总结 前言 matplotlib 是 Python…...
Ribbon负载均衡的深度解析与应用
在微服务架构中,服务之间的调用频繁且复杂,因此负载均衡显得尤为重要。Spring Cloud生态系统中,Ribbon作为一个客户端负载均衡器,扮演着关键的角色。它不仅能提高系统的响应速度,还能确保系统的稳定性和可用性。接下来…...
Neo4j GDS-06-neo4j GDS 库中社区检测算法介绍
neo4j apoc 系列 Neo4j APOC-01-图数据库 apoc 插件介绍 Neo4j APOC-01-图数据库 apoc 插件安装 neo4j on windows10 Neo4j APOC-03-图数据库 apoc 实战使用使用 Neo4j APOC-04-图数据库 apoc 实战使用使用 apoc.path.spanningTree 最小生成树 Neo4j APOC-05-图数据库 apo…...
Android 删除aar中的一个类 aar包冲突 aar类冲突 删除aar中的一个包
Duplicate class com.xxxa.naviauto.sdk.listener.OnChangeListener found in modules jetified-xxxa-sdk-v1.1.2-release-runtime (:xxx-sdk-v1.1.2-release:) and jetified-xxxb-sdk-1.1.3-runtime (:xxxb-sdk-1.1.3:) A.aar B.aar 有类冲突; 使用 exclude 排除本…...
【老电脑翻新】华硕A456U(换电池+换固态+光驱换机械+重装系统+重装系统后开始菜单失灵问题解决)
前言 电脑华硕A456U买来快10年了,倒是还能用,就是比较卡,cpu占比总是100%,之前已经加过内存条了。想要不换个固态看看。 省流:没太大效果。 记录一下拆机&换固态的过程 准备 西部数据固态硬盘480G WD Green S…...
Unity 简单使用Addressables加载SpriteAtlas图集资源
思路很简单,传入图集名和资源名,利用Addressables提供的异步加载方式从ab包中加载。加载完成后存储进缓存字典里,以供后续使用。 添加引用计数,防止多个地方使用同一图集时,不会提前释放 using UnityEngine; using U…...
stable diffusion本地安装
1. 基本环境准备 安装conda 环境 pytorch基础学习-CSDN博客 创建虚拟环境: conda create -n sd python3.10 一定要指定用3.10,过高的版本会提示错误: 激活启用环境: conda activate sd 设置pip国内镜像源: pip conf…...
MQ 如何保证数据一致性?
大家好,我是苏三,又跟大家见面了。 前言 上个月,我们有个电商系统出了个灵异事件:用户支付成功了,但订单状态死活不改成“已发货”。 折腾了半天才定位到问题:订单服务的MQ消息,像人间蒸发一…...
spring @Autowired对属性、set方法,构造器的分别使用,以及配合 @Autowired 和 @Qualifier避免歧义性的综合使用案例
代码结构 依赖注入 在Spring IoC容器的概念中,主要是使用依赖注入来实现Bean之间的依赖关系的 举例 例如,人类(Person)有时候会利用动物(Animal)来完成一些事情,狗(Dog࿰…...
Ubuntu 系统上完全卸载 Docker
以下是在 Ubuntu 系统上完全卸载 Docker 的分步指南 一.卸载验证 二.卸载步骤 1.停止 Docker 服务 sudo systemctl stop docker.socket sudo systemctl stop docker.service2.卸载 Docker 软件包 # 移除 Docker 核心组件 sudo apt-get purge -y \docker-ce \docker-ce-cli …...
国际机构Gartner发布2025年网络安全趋势
转自:中国新闻网 中新网北京3月14日电 国际机构高德纳(Gartner)14日发布的消息称,网络安全和风险管理在2025年“面临挑战与机遇并存的局面”,“实现转型和提高弹性”对确保企业在快速变化的数字世界中,实现安全且可持续的创新至关…...
设计秒杀系统(高并发的分布式系统)
学海无涯,志当存远。燃心砺志,奋进不辍。 愿诸君得此鸡汤,如沐春风,事业有成。 若觉此言甚善,烦请赐赞一枚,共励学途,同铸辉煌! 思路 处理高并发 流量削峰:限流…...
C# 打印模板设计-ACTIVEX打印控件-多模板加载
一、启动软件 using System; using System.Collections.Generic; using System.Windows.Forms; using System.Data;namespace Print {static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){//使用模板前必须…...
华为HCIE方向那么多应该如何选择?
在华为认证体系里,HCIE作为最高等级的认证,是ICT领域专业实力的有力象征。HCIE设置了多个细分方向,这些方向宛如不同的专业赛道,为期望在ICT行业深入发展的人提供了丰富的选择。今天,咱们就来好好聊聊华为HCIE方向的相…...
五子棋游戏
五子棋 - deveco <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>五子棋 - deveco</title>…...
Vue3.5 企业级管理系统实战(十):面包屑导航组件
1 breadcrumb 组件 1.1 安装插件 path-to-regexp 首先,我们需要安装插件 path-to-regexp,以便在下面的面包屑组件中对路由地址进行解析。 path-to-regexp是一个 JavaScript 库,可将路径字符串转化为正则表达式,广泛用于 Web 开发…...
【python】OpenCV—Hand Detection
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、参考6、其它手部检测和手势识别的方案 更多有趣的代码示例,可参考【Programming】 1、功能描述 基于 opencv-python 和 mediapipe 进行手部检测 2、代码实现 导入必要的库函数 import cv2 import media…...
[ComfyUI] SDXL Prompt Styler 自定义节点的作用解析
1. SDXL Prompt Styler 的位置与基本功能 在 ComfyUI 的 “新建节点” → “实用工具” 下,可以找到 Style 节点(SDXL Prompt Styler)。该节点的主要作用是对输入的描述进行结构化处理,并在转换为 Stable Diffusion XL (SDXL) 提示词时,自动补充风格相关的内容,使提示词…...
Oracle-rman restore遭遇RMAN-03002与ORA-19563
文章目录 在原DB上检查是否有重复的文件名:查看rman恢复的日志修正重名部分重新执行rman恢复结论: 在 RMAN 恢复过程中,遇到RMAN-03002连同ORA-19563:错误。 操作是将 Oracle 10.0.5的数据库备份从 RMAN備份恢复到另一台测试主机的同一个目录…...
FPGA中串行执行方式之使用时钟分频或延迟的方式
FPGA中串行执行方式之使用时钟分频或延迟的方式 在FPGA设计中,时钟分频和延迟是两种常用的技术,用于控制信号的时序或调整信号的频率。它们可以用来实现简单的串行逻辑、状态转移或其他需要时间控制的场景。 时钟分频(Clock Division) 基本原理:时钟分频是通过将输入…...
Dubbo 全面解析:从 RPC 核心到服务治理实践
一、分布式系统与 RPC 框架概述 在当今互联网时代,随着业务规模的不断扩大,单体架构已经无法满足高并发、高可用的需求,分布式系统架构成为主流选择。而在分布式系统中,远程服务调用(Remote Procedure Call࿰…...
JavaScript 调试入门指南
JavaScript 调试入门指南 一、调试准备阶段 1. 必备工具配置 浏览器套件:安装最新Chrome102+,开启实验性功能(地址栏输入chrome://flags/#enable-devtools-experiments)编辑器集成:VS Code安装以下扩展: JavaScript Debugger:支持浏览器与Node.js双端调试Error Lens:实…...
不能将下载行为传输到IDM
目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 安装IDM后,调用IDM下载软件显示:不能将下载行为传输到IDM,Error 0x80029C4A 二、原因分析 可能是识别浏览器插件不到,或者本地的插件版本不对导致的 三…...
spring security 认证流程分析
Spring Security 认证流程分析 Spring Security 的认证流程是一个模块化且可扩展的过程,核心围绕 过滤器链 和 认证组件 协作实现。以下是详细流程分析: 1. 请求拦截与过滤器链 • 入口:所有 HTTP 请求经过 Spring Security 的过滤器链。 •…...
Docker Compose 部署 Loki
官方文档:https://grafana.com/docs/loki/latest/setup/install/docker/ 环境准备 安装 Docker和Docker Compose 参考:https://qiangsh.blog.csdn.net/article/details/125375187 创建loki目录 mkdir -p /opt/loki/config mkdir -p /data/monitoring…...
nuxt3 seo优化
在 Nuxt3 中,通过 nuxtjs/seo、nuxtjs/sitemap 和 nuxtjs/robots 模块可以生成包含动态链接的站点地图(sitemap.xml),但具体是“实时生成”还是“部署时生成”,取决于你的配置方式和数据更新频率。以下是具体分析&…...
CentOS 8 Stream 配置在线yum源参考 —— 筑梦之路
CentOS 8 Stream ISO 文件下载地址:http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_64/CentOS-Stream-8-20240603.0-x86_64-dvd1.isoCentOS 8 Stream 网络引导ISO 文件下载地址:http://mirrors.aliyun.com/centos-vault/8-stream/isos/x86_6…...
uniapp 在app上 字体如何不跟着系统字体大小变
在UniApp开发中,默认情况下App的字体可能会跟随系统字体设置而变化。如果你希望保持固定的字体样式,不随系统字体设置改变,可以采用以下几种方法: 方法一:全局CSS设置 在App.vue的样式中添加以下CSS: /*…...
leetcode141.环形链表
直接快慢指针,如果有环,那么快指针一定会在成环的起始点与慢指针相遇 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ pu…...
【HTML5游戏开发教程】零基础入门合成大西瓜游戏实战 | JS物理引擎+Canvas动画+完整源码详解
《从咖啡杯到财务自由:一个程序员的合成之旅——当代码遇上物理引擎的匠心之作》 🌟 这是小游戏开发系列的第四篇送福利文章,感谢一路以来支持和关注这个项目的每一位朋友! 💡 文章力求严谨,但难免有疏漏之…...
【C#语言】深入理解C#多线程编程:从基础到高性能实践
文章目录 ⭐前言⭐一、多线程的本质价值🌟1、现代计算需求🌟2、C#线程演进史 ⭐二、线程实现方案对比🌟1、传统线程模型🌟2、现代任务模型(推荐)🌟3、异步编程范式 ⭐三、线程安全深度解析&…...
短信验证码安全需求设计
背景: 近期发现部分系统再短信充值频繁,发现存在恶意消耗短信额度现象,数据库表排查,发现大量非合法用户非法调用短信接口API导致额度耗尽。由于系统当初设计存在安全缺陷,故被不法分子进行利用,造成损失。…...
selenium实现自动登录项目(5)
1、163邮箱自动登录功能 遇到的问题: 1、登录页面,在定位表单时候,采用id,xpath,css selector都无法定位成功,因为id后面有个随机生成的数字(//*[id"x-URS-iframe1741925838640.6785&quo…...
多 线 程
一.基本知识 线程:线程是操作系统能够运行调度的最小单位 进程:进程是程序执行实体 多线程应用场景:拷贝、迁移大文件,加载大量的资源文件 并发:有多个指令在单个cpu上交替执行 并行:在同一时刻人&…...
C#:类型定义中使用问号(?)
在 C# 中,类型定义中的问号(?)主要用于控制类型的可空性,但具体行为因类型(值类型或引用类型)和 C# 版本而异。以下是清晰分类的说明: 一、可空值类型(T?,适用于所…...
基于飞腾FT2000+服务器主板与DeepSeek大模型的国产化AI算力探索
随着国产化处理器和AI技术的快速发展,自主可控的算力解决方案日益受到关注。国内大模型技术飞速发展,Deepseek等大模型在自然语言处理、计算机视觉等领域展现出强大的能力。面对大模型的计算需求,服务器硬件的国产化成为重要趋势。 飞腾FT20…...
知识篇 | Oracle的 TEMP表空间管理和优化
Oracle临时表空间(TEMP)是数据库中用于存储会话级临时数据的核心组件,主要用于支持需要中间结果集的操作(如排序、哈希连接)。其数据在事务结束或会话终止后自动释放,不持久化存储。 核心特点:…...
鸿蒙进行视频上传,使用 request.uploadFile方法
一.拉起选择器进行视频选择,并且创建文件名称 async getPictureFromAlbum() {// 拉起相册,选择图片let PhotoSelectOptions new photoAccessHelper.PhotoSelectOptions();PhotoSelectOptions.MIMEType photoAccessHelper.PhotoViewMIMETypes.VIDEO_TY…...
如何下载 Postman?快速指南!
Postman 是一款非常受欢迎的 API 测试工具。它最初是作为一个 Chrome 插件发布,后来发展成为一款独立的跨平台软件,支持 Windows、Mac、Linux 等操作系统。 Postman 怎么下载教程(2025最新版)?...
Angular由一个bug说起之十五:自定义基于Overlay的Tooltip
背景 工具提示(tooltip)是一个常见的 UI 组件,用于在用户与页面元素交互时提供额外的信息。由于angular/material/tooltip的matTooltip只能显示纯文本,所以我们可以通过自定义Directive来实现一个灵活且功能丰富的tooltip Overlay…...
M系mac怎么关闭sip
SIP是系统级的权限操作,我们无法直接关闭它。记录一下如何成功关闭SIP。 一. 查看自己mac的sip是否关闭,终端中输入该下命令: csrutil status 未关闭:System Integrity Protection status: enabled. 已关闭:System…...
Kafka 的延迟队列、死信队列和重试队列
总结一下实现的方法: 1、延迟队列,首先kafka是没有延迟队列的,那要实现延迟队列的话,就得使用其他方法。在发送消息的时候加上时间戳,再在时间戳上面加上延迟时间。消费的时候判断一下,有没有到达延迟时间&…...
OpenCV正确安装及环境变量配置
安装OpenCV(v4.6.0)安装Python(3.10.6)安装VS2022的C桌面开发,手动勾选Windows 10 SDK和MSVC安装CMake(3.31.6)在.npmrc配置pnpm config set auto-approve-builds true运行pnpm install 接下来是…...
分布式系统的CAP理论、事务和锁实现
分布式系统核心概念 1. CAP理论 CAP理论指出,分布式系统最多同时满足以下三项中的两项: 一致性(CC):所有节点访问同一份最新数据。可用性(AA):每个请求都能在合理时间内获得非错误…...
JBDev - Theos下一代越狱开发工具
JBDev - Theos下一代越狱开发工具 自越狱诞生以来,Theos一直是越狱开发的主流工具,大多数开发者使用Theos编译代码,再用lldb手动调试。JBDev简化了这个过程,项目地址https://github.com/lich4/JBDev 简介 JBDev用于Xcode越狱开…...
vue3自定义动态锚点列表,实现本页面锚点跳转效果
需求:当前页面存在多个模块且内容很长时,需要提供一个锚点列表,可以快速查看对应模块内容 实现步骤: 1.每个模块添加唯一id,添加锚点列表div <template><!-- 模块A --><div id"modalA">…...
华为、浪潮、华三链路聚合概述
1、华为 链路聚合可以提高链路带宽和链路冗余性。有三种类型,分别是手工链路聚合,静态lacp链路聚合,动态lacp链路聚合。 手工链路模式:也称负载分担模式,需手动指定链路,各链路之间平均分担流量。静态LAC…...
RUBY报告系统
我们常用GFP及其变体如RFP、YFP、mCherry等作为基因表达的报告蛋白——需要荧光显微镜制片观察;此外还有GUS或荧光素酶作为报告酶——需要添加底物。 RUBY报告系统则与众不同,其作用原理是:将酪氨酸转化为鲜艳的红色甜菜碱,无需使…...
HO与OH差异之Navigation三
在上一篇内容中我们介绍了HO与OH差异之Navigator,我们也了解了Navigator的基本概念和大致了解了一下他的基础用法,既然谈到差异肯定就不止这两种差异,今天就让我们来了解第三种差异NavRouter,其中在HO中我们并没有这种路由方式但是…...
PyTorch处理数据--Dataset和DataLoader
在 PyTorch 中,Dataset 和 DataLoader 是处理数据的核心工具。它们的作用是将数据高效地加载到模型中,支持批量处理、多线程加速和数据增强等功能。 一、Dataset:数据集的抽象 Dataset 是一个抽象类,用于表示数据集的接口。你…...