EXCEL Python 实现绘制柱状线型组合图和树状图(包含数据透视表)
1、组合图、数据透视表
(1)数据预处理
知识点
- 日期函数 year() month()
- 数据透视表操作
- 同比计算公式
- 环比计算公式
(2)excel 数据透视表+插入组合图
a.2015~2017数据集处理方式:
- 操作:
- 结果
b.2020~2022数据集处理方式
一次数据透视结果:
- 操作
- 结果
两次数据透视结果
- 操作:
- 结果:
(3)python绘制组合图
a.数据预处理结果
b.代码
知识点:
使用 make_subplots 创建子图,设置 secondary_y=True 启用双 Y 轴
交互模式:hovermode=‘x unified’ 使鼠标悬停时同时显示所有系列在同一日期的数据,便于对比。
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots# 读取数据
data = pd.read_excel('组合图数据.xlsx',engine='openpyxl')# 将日期列转换为datetime类型
data['日期'] = pd.to_datetime(data['日期'])# 创建组合图
fig = make_subplots(specs=[[{"secondary_y": True}]])# 添加成交金额柱状图
fig.add_trace(go.Bar(x=data['日期'],y=data['求和项:成交金额'],name='求和项:成交金额',marker_color='#1f77b4'),secondary_y=False
)# 添加同比增幅折线图
fig.add_trace(go.Line(x=data['日期'],y=data['同比'],name='同比增幅',line=dict(color='#d62728', width=2, dash='dash')),secondary_y=True
)# 添加环比增幅折线图
fig.add_trace(go.Line(x=data['日期'],y=data['环比'],name='环比增幅',line=dict(color='#2ca02c', width=2, dash='dash')),secondary_y=True
)# 设置图表布局
fig.update_layout(title='2020年1月1日-2022年12月1日的成交金额、环比增幅、同比增幅的组合图',xaxis_title='日期',yaxis_title='成交金额',yaxis2=dict(title='增幅 (%)',overlaying='y',side='right'),hovermode='x unified'
)# 显示图表
fig.show()
c.结果
组合图
优化:销售数据仪表盘:
a.代码
知识点
- dash 构建交互界面,dash_bootstrap_components 提供美观的 UI 组件。
- dbc.Container:Bootstrap 的响应式容器,fluid=True表示宽度 100%
- dbc.Row, dbc.Col:Bootstrap 的网格系统,一行一列。
- html.H1:HTML 标题标签,className添加样式(居中、上下边距)。
- dcc.Dropdown:下拉菜单组件:
id:组件唯一标识,用于回调。
options:选项列表,格式为[{label:显示文本, value:实际值}]。
value:默认选中的值。
multi=True:允许多选。- dbc.Button:Bootstrap 按钮:
n_clicks:记录点击次数,触发回调。
color=“primary”:蓝色主按钮。- dbc.Spinner:加载动画,在数据处理时显示。
- dcc.Graph:Plotly 图表组件,id='sales-graph’用于显示组合图。
- @app.callback:装饰器,定义回调函数。
- Output:回调输出,更新sales-graph组件的figure属性。
- Input:触发回调的输入,这里是按钮的n_clicks。
- State:获取下拉菜单当前值(不触发回调)。
- hovertemplate:鼠标悬停时显示的信息:
%{x|%Y年%m月}:格式化日期(如 2023 年 01 月)。
%{text}:显示text中的金额。
< extra></ extra>:隐藏右侧默认信息。- overlaying=‘y’:与左侧 Y 轴共享 X 轴。
- hovermode=‘x unified’:鼠标悬停时,所有数据在同一 X 轴对齐显示。
- tickformat=‘% Y 年 % m 月’:X 轴日期格式化为2023年01月。
tickformat=‘,’:Y 轴数字添加千位分隔符(如1,000,000)。- 流式布局(fluid layout)fluid=True 响应式布局适配不同屏幕。
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import dash
from dash import dcc, html, Input, Output, State
import dash_bootstrap_components as dbc# 读取数据
data = pd.read_excel('组合图数据.xlsx',engine='openpyxl')# 确保日期列是正确的格式
data['日期'] = pd.to_datetime(data['日期'])
data['年份'] = data['日期'].dt.year
data['月份'] = data['日期'].dt.month# 创建应用
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
server = app.server # 用于生产部署# 获取年份和月份的唯一值
years = sorted(data['年份'].unique())
months = list(range(1, 13))
month_names = ['一月', '二月', '三月', '四月', '五月', '六月','七月', '八月', '九月', '十月', '十一月', '十二月']# 应用布局
app.layout = dbc.Container([dbc.Row([dbc.Col(html.H1("销售数据分析仪表盘", className="text-center mt-4 mb-4"), width=12)]),dbc.Row([dbc.Col([html.Label("选择年份:", className="mr-2"),dcc.Dropdown(id='year-dropdown',options=[{'label': str(year), 'value': year} for year in years],value=years, # 默认选择所有年份multi=True,className="w-100")], width=3),dbc.Col([html.Label("选择月份:", className="mr-2"),dcc.Dropdown(id='month-dropdown',options=[{'label': month_names[i - 1], 'value': i} for i in months],value=months, # 默认选择所有月份multi=True,className="w-100")], width=3),dbc.Col([dbc.Button("应用筛选",id='apply-filter',n_clicks=0,className="mt-3",color="primary")], width=2)], className="mb-4"),dbc.Row([dbc.Col([dbc.Spinner(id="loading-spinner",children=[dcc.Graph(id='sales-graph')],color="primary",type="grow")], width=12)])], fluid=True)# 回调函数
@app.callback(Output('sales-graph', 'figure'),[Input('apply-filter', 'n_clicks')],[State('year-dropdown', 'value'),State('month-dropdown', 'value')]
)
def update_graph(n_clicks, selected_years, selected_months):# 确保参数有效if not selected_years:selected_years = yearsif not selected_months:selected_months = months# 筛选数据filtered_data = data[data['年份'].isin(selected_years) &data['月份'].isin(selected_months)]# 如果没有数据,返回空图表if filtered_data.empty:fig = go.Figure()fig.update_layout(title="没有匹配的数据",xaxis_title="日期",yaxis_title="成交金额")return fig# 创建组合图fig = make_subplots(specs=[[{"secondary_y": True}]])# 添加成交金额柱状图fig.add_trace(go.Bar(x=filtered_data['日期'],y=filtered_data['求和项:成交金额'],name='成交金额',text=[f"{x:,.0f}" for x in filtered_data['求和项:成交金额']],hovertemplate='日期: %{x|%Y年%m月}<br>成交金额: %{text}<extra></extra>',marker_color='#1f77b4'),secondary_y=False)# 添加同比增幅折线图fig.add_trace(go.Scatter(x=filtered_data['日期'],y=filtered_data['同比'],name='同比增幅',text=[f"{x:.1f}%" for x in filtered_data['同比']],hovertemplate='日期: %{x|%Y年%m月}<br>同比增幅: %{text}<extra></extra>',line=dict(color='#d62728', width=2, dash='dash'),marker=dict(size=8)),secondary_y=True)# 添加环比增幅折线图fig.add_trace(go.Scatter(x=filtered_data['日期'],y=filtered_data['环比'],name='环比增幅',text=[f"{x:.1f}%" for x in filtered_data['环比']],hovertemplate='日期: %{x|%Y年%m月}<br>环比增幅: %{text}<extra></extra>',line=dict(color='#2ca02c', width=2, dash='dash'),marker=dict(size=8)),secondary_y=True)# 设置图表布局fig.update_layout(title=f"成交金额与增幅分析 ({', '.join(map(str, selected_years))}年)",title_font=dict(size=20),xaxis_title="日期",yaxis_title="成交金额",yaxis2=dict(title="增幅 (%)",overlaying='y',side='right'),legend=dict(x=0, y=1.05,orientation='h',bgcolor='rgba(255, 255, 255, 0.8)',bordercolor='rgba(0, 0, 0, 0.1)',borderwidth=1,font=dict(size=14)),hovermode='x unified',plot_bgcolor='rgba(240, 240, 240, 0.5)',margin=dict(l=60, r=60, t=60, b=60),font=dict(family="SimHei, WenQuanYi Micro Hei, Heiti TC", size=14))# 设置X轴格式fig.update_xaxes(tickformat='%Y年%m月',tickfont=dict(size=14))# 设置Y轴格式fig.update_yaxes(tickformat=',',title_font=dict(size=16))return figif __name__ == '__main__':app.run_server(debug=True)
b.结果
销售数据仪表盘
2、树状图可视化
(1)数据预处理,数据透视表实现求和
(2)EXCEL 插入树状图
(3)python matplotlib库中的squarify.plot()函数绘制树状图
import pandas as pd
import matplotlib.pyplot as plt
import squarify
import numpy as np# 读取数据
df = pd.read_excel('树状图.xlsx', engine='openpyxl')# 设置图片清晰度
plt.rcParams['figure.dpi'] = 300
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'WenQuanYi Micro Hei', 'Heiti TC']# 数据预处理:计算占比,用于标签显示
total = df['求和项:成交金额'].sum()
df['占比'] = df['求和项:成交金额'].apply(lambda x: f"{x/total*100:.1f}%")# 创建自定义颜色映射
cmap = plt.cm.get_cmap('viridis', len(df))
colors = [cmap(i) for i in range(len(df))]# 绘制树状图
plt.figure(figsize=(12, 8)) # 设置图形大小squarify.plot(sizes=df['求和项:成交金额'],label=[f"{name}\n{amount/1e8:.1f}亿\n{percent}"for name, amount, percent in zip(df['类别'], df['求和项:成交金额'], df['占比'])],color=colors,alpha=0.8,pad=True # 添加间隔,使图形更清晰
)# 设置标题和样式
plt.title('不同类别成交金额树状图', fontsize=16, pad=10)
plt.axis('off') # 隐藏坐标轴# 添加图例说明
plt.text(0.99, 0.01,f"总计: {total/1e8:.2f}亿",ha='right',va='bottom',transform=plt.gca().transAxes,fontsize=10,bbox=dict(facecolor='white', alpha=0.7)
)# 调整布局
plt.tight_layout()# 显示图形
plt.show()
相关文章:
EXCEL Python 实现绘制柱状线型组合图和树状图(包含数据透视表)
1、组合图、数据透视表 (1)数据预处理 知识点 日期函数 year() month()数据透视表操作 同比计算公式 环比计算公式 (2)excel 数据透视表插入组合图 a.2015~2017数据集处理方式: 操作: 结果 b.2020~20…...
OpenCV的CUDA模块进行图像处理
本文介绍了使用OpenCV和CUDA加速的四种图像处理技术:灰度化、高斯模糊、Sobel边缘检测和直方图均衡化。每种技术都通过将图像数据上传到GPU,利用CUDA进行加速处理,最后将结果下载回CPU。灰度化通过cv::cuda::cvtColor实现,高斯模糊…...
电路研究9.3.5——合宙Air780EP中的AT开发指南:MQTT 应用指南
应用概述 4G 模块支持 MQTT 和 MQTT SSl 协议, MQTT 应用的基本流程如下: 1、如果要支持 SSL ,配置 SSL 参数 2、通过 TCP 连接到 MQTT 服务器 3、发送 MQTT CONNECT 到服务器,打开会话连接 4、订阅或者发布消息…...
每日算法刷题计划Day5 5.13:leetcode数组3道题,用时1h
11. 26. 删除有序数组中的重复项(简单,双指针) 26. 删除有序数组中的重复项 - 力扣(LeetCode) 思想: 1.我的思想: 双指针遍历集合储存已有元素 2.官方思想: 题目条件有序数组删除重复元素,所以重复元素都是连续存在…...
常见排序算法及复杂度分析
冒泡排序 (Bubble Sort) 基本思想 相邻元素比较,大的元素后移 每轮将最大元素"冒泡"到末尾 代码实现 void bubbleSort(int arr[], int n) {for (int i 0; i < n-1; i) {for (int j 0; j < n-i-1; j) {if (arr[j] > arr[j1]) {swap(arr[j]…...
git 怎么更改本地的存储的密码
目录 找到控制面板---用户账户---凭证管理器 点击【windows凭据】,选择普通凭据,点击你要修改的地址。点击【编辑】 修改完,点击【保存】编辑 找到控制面板---用户账户---凭证管理器 点击【windows凭据】,选择普通凭据&#x…...
数据分析预备篇---Pandas的Series
Pandas优势 Pandas优势在于它是构建在NumPy之上的,继承了NumPy高性能的数组计算功能,同时还提供了更多复杂精细的数据处理功能(如缺失值处理、时间序列分析),支持表格型数据(DataFrame)和带标签的一维数据(Series) 安装Pandas Windows操作系统,在菜单栏搜索cmd,进入…...
Kaamel隐私合规洞察:Facebook美容定向广告事件分析
Kaamel隐私合规与数据安全团队分析报告 I. 引言:基于情绪的定向广告指控 A. 事件概述 近期,一则关于Meta(前身为Facebook)的指控引发了公众对数字隐私和广告伦理的广泛关注。该指控核心内容为,Meta公司涉嫌利用其平台…...
最优化方法Python计算:有约束优化应用——线性可分问题支持向量机
设问题的数据样本点 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi,yi), x i ∈ R n \boldsymbol{x}_i\in\text{R}^n xi∈Rn, y i 1 y_i\pm1 yi1, i 1 , 2 , ⋯ , m i1,2,\cdots,m i1,2,⋯,m。由于标签数据 y i ∈ { − 1 , 1 } y_i\…...
深入解析 I/O 模型:原理、区别与 Java 实践
一、I/O 模型的核心概念 I/O 操作的本质是数据在用户空间(应用程序内存)和内核空间(操作系统内核内存)之间的传输。根据数据准备与拷贝阶段的处理方式不同,I/O 模型可分为以下五类: 阻塞 I/O(…...
React系列——HOC高阶组件的封装与使用
技巧一:复用组件逻辑 具体而言,高阶组件是参数为组件,返回值为新组件的函数 const EnhancedComponent higherOrderComponent(WrappedComponent);For example: 参数复用 const withSize (Component) > {return class toSize extends C…...
72.编辑距离
编辑距离是指通过删除、插入和替换三种操作,将一个字符串转换为另一个字符串所需的最少操作次数。 首先定义状态:dp[i][j] 表示将 word1 的前 i 个字符转换为 word2 的前 j 个字符所需的最少操作数。接下来定义状态转移方程: 如果 word1[i]…...
自适应稀疏核卷积网络:一种高效灵活的图像处理方案
自适应稀疏核卷积网络:一种高效灵活的图像处理方案 引言 在深度学习的大潮中,计算机视觉技术取得了长足的进步。其中,卷积神经网络(CNN)作为图像处理的核心工具,极大地推动了各类图像识别任务的效果提升。…...
c# UTC 时间赋值注意事项
文章目录 最佳实践:赋值时指定时区问题描述回答关键区别:DateTime.SpecifyKind 的作用1. 直接赋值 DateTime.UtcNow.Date2. 使用 DateTime.SpecifyKind 强制指定 最佳实践:赋值时指定时区 避免 C# 版本默认读取时采用 机器时区问题 如果需要UTC 时间…...
对端服务器重装系统之后远程SSH无法登录的问题
今天遇到一个SSH连接问题特此记录下。 我之前可以从本机使用SSH跳转到其他服务器,今天突然发现无法跳转了,有警告信息,此报错是由于远程的主机的公钥发生了变化导致的,可能是有异常,建议修改认证文件后再次登录。 突然…...
豌豆 760 收录泛滥现象深度解析与应对策略
xinruanj 一、收录泛滥现象的具体表现 当用户在豌豆760 中搜索某类应用时,往往会被数量庞大、功能相似的程序所包围。以图片编辑类应用为例,搜索结果中可能会出现数十款名称相近、图标相似的应用。这些应用不仅在界面设计上缺乏创新,甚至部…...
dockers笔记
docker 和 虚拟机的区别 虚拟机比较笨重,包括操作系统 虚拟化:将物理资源虚拟为逻辑资源 镜像 - 模板 容器 - 实例 docker hub - 分享 和 复用 容器化和dockerfile dockerfile实践 我们想打印一个js语句,如何构建镜像完成这个事情 新建了…...
Angular | 利用 `ChangeDetectorRef` 解决 Angular 动态显示输入框的聚焦问题
在 Angular 应用开发中,实现用户点击按钮后,原地切换显示一个输入框并自动获取焦点的功能,是一个常见的交互模式。例如,搜索图标点击后变为搜索框,用户可以直接输入。然而,由于 Angular 的变更检测和 DOM 更…...
Redis——数据结构
Redis的五种基本数据类型:String、Hash、List、Set、ZSet 结构类型结构存储值结构读写能力String字符串、整数或浮点数对整个字符串或字符串的一部分进行操作;对整数或者浮点数进行自增或自减操作List链表,每个节点上包含一个字符串对链表两…...
通讯录管理系统(IO_序列化和反序列化版)
参照之前文章,也是IO的变版 package day4;import java.io.Serializable;/* 有需求 -- 才去设计类 自定义表示通讯录单条信息的类*/ public class PhoneBookItem implements Serializable {private static final long serialVersionUID 1L;//属性private String na…...
基于RT-Thread的STM32F4开发第三讲——DAC
文章目录 前言一、DAC是什么?二、RT-Thread工程创建三、DAC函数编写1.DAC.c2.DAC.h3.main.c 四、结果测试五、工程分享 前言 本章利用RT-Thread最新的驱动5.1.0开发DAC模块,使用的开发板是正点原子的STM32F4探索者。很多配置和上文重复,本文…...
git cherry-pick和git stash命令详解
git cherry-pick命令 定义 用于将指定的提交(commit)从一个分支"挑选"并应用到当前分支它复制某个提交的更改(diff),生成一个新的提交,保留原提交的更改内容,但拥有新的提交ID(SHA值)…...
MapReduce基本介绍
核心思想 分而治之:将大规模的数据处理任务分解成多个可以并行处理的子任务,然后将这些子任务分配到不同的计算节点上进行处理,最后将各个子任务的处理结果合并起来,得到最终的结果。 工作流程 Map 阶段: 输入数据被…...
正则表达式常用验证(一)
正则表达式(Regular Expression)是一种强大的文本匹配工具,常用于验证字符串的格式。以下是常见的正则表达式验证场景及其对应的表达式: 1. 数字验证 验证纯数字: ^\d+$示例:123、456789 验证固定长度的数字(如 6 位): ^\d{6}$示例:123456 验证数字范围(如 1 到 100…...
基于几何布朗运动的股价预测模型构建与分析
基于几何布朗运动的股价预测模型构建与分析 摘要 本文建立基于几何布朗运动的股价预测模型,结合极大似然估计与蒙特卡洛模拟,推导股价条件概率密度函数并构建动态预测区间。实证分析显示模型在标普500指数预测中取得89%的覆盖概率,波动率估…...
通过SSRF击穿内网!kali-ssrf靶场实战!
目录 1. 靶场拓扑图 2. 判断SSRF的存在 3. SSRF获取本地信息 3.1. SSRF常用协议 3.2. 使用file协议 4. 172.150.23.1/24探测端口 5. 172.150.23.22 - 代码注入 6. 172.150.23.23 SQL注入 7. 172.150.23.24 命令执行 7.1. 实验步骤 8. 172.150.23.27:6379 Redis未授权…...
Yarn-概述
一、YARN 是什么? YARN(Yet Another Resource Negotiator) 是 Apache Hadoop 生态系统中的核心组件,是一个 分布式资源管理和作业调度系统,主要用于协调集群中的计算资源(CPU、内存、磁盘、网络等…...
如何在sheel中运行spark
// 读取文件,得到RDD val rdd1 sc.textFile("hdfs://hadoop100:8020/wcinput/words.txt") // 将单词进行切割,得到一个存储全部单词的RDD val rdd2 fileRDD.flatMap(line > line.split(" ")) // 将单词转换为元组对象࿰…...
销售具备的能力有哪些
销售人员是许多公司业务的开拓者,他们的存在让公司的利益更高。因此,在许多的公司中,销售人员的待遇都非常的高。也因此,有的人看重销售人员的薪资待遇想寻找销售型的工作。但是,相当销售人员还需要具有一定的工作能力…...
React面试常问问题详解
以下是30个React面试中常见的问题及简要解析,涵盖基础概念、核心原理、性能优化、Hooks、状态管理等方面,适用于初中高级开发者准备面试时参考: 一、React 基础与核心概念 React 是什么? React 是由 Facebook 开发的用于构建用户界…...
POM 和关键字驱动区别
一、POM 和关键字驱动的区别以及各自的优势分别是什么? 1、POM 适用于对单个系统封装的自动化框架中,对业务覆盖更精准; 优势:更加便利、维护性更高 2、关键字驱动可以用于对多个业务、多个系统进行封装的自动化框架中&…...
2025年PMP 学习十一 第8章 项目质量管理(8.3)
第8章 项目质量管理(8.3) 文章目录 第8章 项目质量管理(8.3)8.3 控制质量1. 定义与作用2.输入、输出,工具和技术3. 数据收集 - 核查表(工具与技术)4. 数据展示 - 帕雷托图(工具与技术…...
【笔记】C++操作mysql及相关配置
目录 使用软件版本信息: 1. C配置mysql相关依赖 1.1 下载 1.2 文件配置 1.3 C编译器配置 2、测试程序 使用软件版本信息: Visual Studio 2022Mysql 8.0C Connector库 8.3.0 可直接在https://download.csdn.net/download/Word_And_Me_/90826524下…...
【MapReduce入门】深度解析MapReduce:定义、核心特点、优缺点及适用场景
目录 1 什么是MapReduce? 2 MapReduce的核心特点 2.1 分布式处理 2.2 容错机制 3 MapReduce的完整工作流程 4 MapReduce的优缺点分析 4.1 优势 4.2 局限性 5 MapReduce典型应用场景 5.1 适用场景 5.2 不适用场景 6 MapReduce与其他技术的对比 7 总结 1…...
EMQX v5.0通过连接器和规则同步数据
1 概述 EMQX数据集成功能,帮助用户将所有的业务数据无需额外编写代码即可快速完成处理与分发。 数据集成能力由连接器和规则两部分组成,用户可以使用数据桥接或 MQTT 主题来接入数据,使用规则处理数据后,再通过数据桥接将数据发…...
JCJC 错别字检测自定义词典 API 接口文档 2025-05-13
JCJC 错别字检测自定义词典 API 接口文档 2025-05-13 JCJC 错别字检测系统自定义词典接口全面开放。企业用户和个人付费用户都可以使用接口方式管理自定义词典。 自定义词典包含: 白名单和黑名单两种类型。 也可以登录个人中心,点击左侧边栏导航以 UI …...
Qt 样式表qss学习
语法 /* 语法结构 */ selector { attribute: value }selector(选择器) selector(选择器):指定要应用样式的控件类型或特定控件。例如: QWidget:所有QWidget及其子类。QPushButton:…...
Linux文件编程——读写结构体、链表等其他类型的数据
在 Linux 文件编程中, open、read、write、close等函数,本质上的读写内容是一个无类型的指针,所以其也可以读写整型、数组、结构体、链表等不同类型的数据。 SYNOPSIS #include <unistd.h>ssize_t write(int fd, const void *buf, siz…...
离散制造企业WMS+MES+QMS+条码管理系统高保真原型全解析
在离散型制造企业的生产过程中,库存管理混乱、生产进度不透明、质检流程繁琐等问题常常成为制约企业发展的瓶颈。为了帮助企业实现全流程数字化管控,我们精心打造了一款基于离散型制造企业(涵盖单件生产、批量生产、混合生产模式)…...
Datawhale PyPOTS时间序列5月第1次笔记
课程原地址: https://github.com/WenjieDu/PyPOTS(Package地址) https://github.com/WenjieDu/BrewPOTS/tree/datawhale/202505_datawhale(Tutorial地址) 2.1 PyPOTS简介 PyPOTS 是一个专为处理部分观测时间序列&a…...
linux 抓包工具tcpdump使用小记(使用时注意权限和系统资源)
tcpdump 是一款强大的网络数据包捕获和分析工具,常用于网络故障排查、协议分析、安全审计等场景。以下是其核心功能、使用方法及常见场景的详细介绍: 1. 基本功能 数据包捕获:监听网络接口,实时捕获传输的数据包。过滤规则&#…...
HTTP和HTTPS模块
一、HTTP 模块 1. 创建 HTTP 服务器 基本服务器示例 const http require(http);const server http.createServer((req, res) > {res.statusCode 200;res.setHeader(Content-Type, text/plain);res.end(Hello World\n); });server.listen(3000, 127.0.0.1, () > {co…...
操作系统导论——第29章 基于锁的并发数据结构
通过锁可以使数据结构线程安全(thread safe)。当然,具体如何加锁决定了该数据结构的正确性和效率?挑战是: 关键问题:如何给数据结构加锁? 对于特定数据结构,如何加锁才能让该结构功能…...
TensorFlow之微分求导
目录 前言示例手动微分实现两个未知数, 求偏导tf.GradientTape常量求导tf.GradientTape二阶导数tf.GradientTape实现梯度下降结合optimizer实现梯度下降 前言 在TensorFlow中,微分是个非常重要的概念。它们分别用于自动求导(计算梯度)和高效…...
电池自动点焊机:多领域电池制造的核心设备
电池自动点焊机作为电池制造领域的关键设备,通过电阻热焊接技术实现金属连接片与电池极片的精确焊接,广泛应用于数码电池、工具电池、储能电池、电动车电池及动力电池的生产环节。其核心技术基于微电脑控制与多脉冲焊接模式,能够针对不同电池…...
第五部分:第一节 - Node.js 简介与环境:让 JavaScript 走进厨房
我们之前学习的 JavaScript 主要运行在浏览器中,由浏览器内置的 JavaScript 引擎(如 Chrome 的 V8 引擎)来解释执行。Node.js 则是一个JavaScript 运行时环境,它也使用了 Chrome 的 V8 引擎,但它不是在浏览器里&#x…...
MQTT 协议详解:物联网通信的利器
在当今物联网(IoT)迅猛发展的背景下,设备之间的高效、可靠通信变得尤为重要。MQTT(Message Queuing Telemetry Transport)作为一种轻量级的消息传输协议,因其低带宽占用和高可靠性,成为物联网领…...
CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响
上海又收紧了新能源车的免费上牌政策。所以年前一些伙伴和我探讨过买新能源汽车的问题,小伙伴们基本纠结的点是买插电还是纯电?我个人是很抗拒新能源车的,也开过坐过。个人有几个观点: 溢价过高,不保值。实际并不环保…...
C++STL——map和set的使用
目录 1.容器 1.1 序列容器 1.2 容器适配器 1.3 关联容器 1.4 无序关联容器 1.5 键值对到底是个什么东西? 2.set系列的使用 2.1 set类的介绍 2.2 set的构造以及迭代器 2.3 set的增,删,查 2.3.1 插入 2.3.2 删除 2.3.3 查找 2.3.4…...
Ensemble Alignment Subspace Adaptation Method for Cross-Scene Classification
用于跨场景分类的集成对齐子空间自适应方法 摘要:本文提出了一种用于跨场景分类的集成对齐子空间自适应(EASA)方法,它可以解决同谱异物和异谱同物的问题。该算法将集成学习的思想与域自适应(DA)算法相结合…...