当前位置: 首页 > news >正文

R折线图(自备)

目录

折线图基础

创建散点和折线图

复杂折现加图例

折线图+柱状图

数据处理

进行差异检验

基础绘图折线

基础绘图箱线

进行合并

双轴柱状与折线图

数据


折线图基础
创建散点和折线图
rm(list = ls()) 
opar <-par(no.readonly=TRUE)##自带orange数据集
par(mfrow=c(1,2))#拼图
t1 <-subset(Orange,Tree==1)##提取使用数据集
head(t1)
head(t1)Tree  age circumference
1    1  118            30
2    1  484            58
3    1  664            87
4    1 1004           115
5    1 1231           120
6    1 1372           142
##散点图
p1 <- plot(t1$age,t1$circumference,xlab="Age(days)",ylab="Circumference(mm)",main="Orange Tree 1 Growth")#标题
p1
##折线图
p2 <-plot(t1$age,t1$circumference,xlab="Age(days)",ylab="Circumference(mm)",main="Orange Tree 1 Growth",type = "b")#标题
p2

折线图绘制参数:plot(x,y,type=)         lines(x,y,type=)


复杂折现加图例
#使用ggplot 绘制折线图#
data <- Orangehead(Orange)
Tree  age circumference
1    2  118            30
2    2  484            58
3    2  664            87
4    2 1004           115
5    2 1231           120
6    2 1372           142
p <- ggplot(data = Orange, aes(x=age, y=circumference, linetype=Tree, color=Tree)) +geom_point() + geom_line(lwd = 1) + scale_color_brewer(palette = "Set1") + ##颜色配色https://zhuanlan.zhihu.com/p/657907907labs(title = "Orange Tree Growth", x = "Age(days)", y = "Circumference(mm)") + theme_bw() +theme(legend.position = c(0.2,0.8)) ##"right" 图例位置p


折线图+柱状图

感谢R语言ggplot2 | 学习Nature文章精美配图 | 折线图 | 柱状图 | 误差棒 | 灰色背景 | 图片叠加 - 知乎 (zhihu.com)

数据:https://static-content.springer.com/esm/art%3A10.1038%2Fs41586-021-04194-8/MediaObjects/41586_2021_4194_MOESM11_ESM.xlsx

接受不同处理的HFD喂养小鼠的体重变化:非SMK(n = 37),SMK(n = 38),非SMK + abx(n = 40)和SMK + abx(n = 39)。从四个独立的重复序列中汇总的结果。最后一天,进行单因素方差分析(ANOVA)和Sidak校正;插图显示了烟雾暴露(暴露)或停止烟雾暴露(停止)会话、单因素方差分析和 Sidak 校正时的曲线下面积 (iAUC) 权重变化增量。

下载数据进行处理:R语言长款数据转换(自备)_r语言宽数据变成长数据-CSDN博客

数据处理

rm(list = ls()) 
library(tidyverse) 
library(reshape2)
data <- read.csv('Nature data.CSV',header = T)
head(data) 
##折线图转换为长数据:[1] "treat"  "Day"    "value1" "value2" "value3"
#根据"treat"分组  "Day"(也是X轴内容)转换为长数据,将value合并为1列
data1 <- data[,c(1:5)] %>% melt(id=c('treat','Day'))##折线误差棒errorbar上下误差位置
topbar <- function(x){      return(mean(x)+sd(x)/sqrt(length(x))) #误差采用了mean+-sem
}
bottombar <- function(x){return(mean(x)-sd(x)/sqrt(length(x)))
}
head(data1)treat Day variable value
1 Non_SMK   0   value1   0.0
2 Non_SMK   7   value1   6.7
3 Non_SMK  14   value1  14.0
4 Non_SMK  21   value1  15.6
5 Non_SMK  28   value1  24.0
6 Non_SMK  35   value1  30.0
进行差异检验

连续性变量的组间差异分析_连续变量和连续变量差异性分析-CSDN博客

##检验测试##
tdat <- data[,c(1:5)]
tdat$mean <- rowMeans(select(tdat,c(3:5)))##计算第3-5行的均值,可以用于计算相关性
#单因素方差分析#
race.aov <-aov(mean ~treat,data = tdat)
summary(race.aov)
#Df Sum Sq Mean Sq F value Pr(>F)
#treat        3  751.2   250.4    2.09  0.134
#Residuals   20 2396.6   119.8   ##两组间最后一组数据t检验## 
group1 <- tdat[tdat$treat =="Non_SMK+abx"& tdat$Day=="35",c(3:5)]
group2 <- tdat[tdat$treat =="SMK+abx" & tdat$Day=="35",c(3:5)]
t.test(group1,group2,var.equal =TRUE)
#t = 12.267, df = 4, p-value = 0.0002536  ****group3 <- tdat[tdat$treat =="SMK"& tdat$Day=="35",c(3:5)]
t.test(group2,group3,var.equal =TRUE)#一样的
#t = -7.4158, df = 4, p-value = 0.001765 ***
基础绘图折线
#绘图赋值为p
p0 <- ggplot(data1,aes(x=Day,y=value,color=treat))+#Day为X,value值为Y,分组颜色treatgeom_rect(aes(xmin=21,xmax=40,ymin=(-Inf),ymax=Inf),##后半部分色块设置fill='grey90',color='grey90')+geom_vline(xintercept =21,linetype=2,cex=1.2)+            #添加虚线stat_summary(geom = 'line',fun='mean',cex=2.5)+           #折线stat_summary(geom = 'errorbar',                           #误差磅fun.min = bottombar,fun.max = topbar,width=1,cex=0.8,aes(color=treat))+stat_summary(geom = 'point',fun='mean',aes(fill=treat),   #点size=5,pch=21,color='black')+theme_classic(base_size = 15)+theme(legend.position = 'none')#top
p0

##点的颜色修改以及显著性标记的添加##
p1 <- p0+scale_color_manual(values = c('#5494cc','#0d898a','#e18283','#f9cc52'))+##线条的颜色scale_fill_manual(values = c('red','#0d898a','#e18283','white'))+ ##点的颜色scale_y_continuous(breaks = seq(0,60,20),expand = c(0,0))+              #Y轴范围scale_x_continuous(breaks = seq(0,40,10),expand = c(0,0))+              #X轴范围labs(y='Weight change(%)')+theme(axis.line = element_line(size = 1),                               #线条设置axis.text = element_text(color = 'black'),axis.ticks = element_line(size = 1,color='black'))+annotate(geom = 'segment',x=36.2,xend=36.2,y=18,yend=26,cex=1.2)+       ##显著性标注设置-线段annotate(geom = 'text',label='***',x=37.5,y=22,size=7,angle=90)+        ##显著性标注设置-数值或***annotate(geom = 'segment',x=38,xend = 38,y=18,yend = 40,cex=1.2)+annotate(geom = 'text',label='****',x=39.5,y=29,size=7,angle=90)
p1##折线图图列的添加并且修改了图例形状##
linechart <- p1+coord_cartesian(clip = 'off',ylim = c(0,60),xlim = c(0,40))+theme(plot.margin = margin(1.5,0.5,0.5,0.5,'cm'))+geom_rect(aes(xmin=0,xmax=3,ymin=63,ymax=65),fill='#5494cc',color='black')+geom_rect(aes(xmin=10,xmax=13,ymin=63,ymax=65),fill='#0d898a',color='black')+geom_rect(aes(xmin=20,xmax=23,ymin=63,ymax=65),fill='#e18283',color='black')+geom_rect(aes(xmin=30,xmax=33,ymin=63,ymax=65),fill='#f9cc52',color='black')+annotate('text',x=6,y=64,label='Non-SMK',size=4)+annotate('text',x=15.2,y=64,label='SMK',size=4)+annotate('text',x=26.4,y=64,label='Non-SMK+\nabx',size=4)+annotate('text',x=36,y=64,label='SMK+abx',size=4)
linechart


基础绘图箱线
##提取箱线图数据
data2 <- data[,6:9] %>% gather(key = treat)
head(data2)
data3 <- data[,10:13] %>% gather(key = treat)#左边柱状图:
leftchart <- ggplot(data2,aes(factor(treat,levels = c('SMK.abx','Non_SMK.abx','SMK','Non_SMK')),value))+stat_summary(geom = 'bar',fun = 'mean',fill='white',color='black',width=0.7,cex=1)+stat_summary(geom = 'errorbar',fun.min = bottombar,fun.max = topbar,width=0.3,cex=0.8,color='black')+geom_jitter(aes(color=factor(treat,levels = c('SMK.abx','Non_SMK.abx','SMK','Non_SMK'))),width = 0.1,size=1.5)+scale_color_manual(values = c('#f9cc52','#0d898a','#e18283','#5494cc'))+labs(x=NULL,y=NULL)+scale_y_continuous(limits = c(-40,600),expand = c(0,0))+geom_hline(yintercept =0,cex=1)+theme_classic(base_size = 15)+theme(axis.ticks.y = element_blank(),axis.text.y= element_blank(),legend.position = 'none',axis.line = element_line(size = 1),axis.text = element_text(color = 'black'),axis.ticks = element_line(size = 1,color='black'))+coord_flip()+annotate(geom = 'segment',x=1,xend=2,y=530,yend=530,cex=1.2)+annotate(geom = 'text',label='****',x=1.5,y=570,size=6,angle=90)+annotate(geom = 'segment',x=3,xend =4,y=370,yend =370,cex=1.2)+annotate(geom = 'text',label='****',x=3.5,y=410,size=6,angle=90))
leftchart#右边柱状图:
rightchart <- ggplot(data3,aes(factor(treat,levels = c('SMK.abx.1','Non_SMK.abx.1','SMK.1','Non_SMK.1')),value))+stat_summary(geom = 'bar',fun = 'mean',fill='white',color='black',width=0.7,cex=1)+stat_summary(geom = 'errorbar',fun.min = bottombar,fun.max = topbar,width=0.3,cex=0.8,color='black')+geom_jitter(aes(color=factor(treat,levels = c('SMK.abx.1','Non_SMK.abx.1','SMK.1','Non_SMK.1'))),width = 0.1,size=1.5)+scale_color_manual(values = c('#f9cc52','#0d898a','#e18283','#5494cc'))+labs(x=NULL,y=NULL)+scale_y_continuous(limits = c(-40,500),expand = c(0,0))+geom_hline(yintercept =0,cex=1)+theme_classic(base_size = 15)+theme(axis.ticks.y = element_blank(),axis.text.y= element_blank(),legend.position = 'none',axis.line = element_line(size = 1),axis.text = element_text(color = 'black'),axis.ticks = element_line(size = 1,color='black'),plot.background = element_rect(fill = "transparent",colour = NA),panel.background = element_rect(fill = "transparent",colour = NA))+coord_flip()+annotate(geom = 'segment',x=1,xend=2,y=420,yend=420,cex=1.2)+annotate(geom = 'text',label='****',x=1.5,y=460,size=6,angle=90)+annotate(geom = 'segment',x=3,xend =4,y=430,yend =430,cex=1.2)+annotate(geom = 'text',label='****',x=3.5,y=470,size=6,angle=90)
rightchart


进行合并
#要叠加的图片先用ggplotGrob()函数处理:
leftchart <- ggplotGrob(leftchart)
rightchart <- ggplotGrob(rightchart)#叠加绘图:
linechart+annotation_custom(leftchart,xmin=0,xmax=20.5,ymin=40,ymax=57)+annotation_custom(rightchart,xmin=21,xmax=39.5,ymin=40,ymax=57)+annotate('text',label='iAUC: Exposure',x=10.5,y=58.5,size=7)+annotate('text',label='iAUC: Cessation',x=31,y=58.5,size=7)

感谢:“R语言ggplot2科研绘图”的代码,本文主要是复现流程和差异计算补充!!


双轴柱状与折线图

Nature图表复现|双轴柱状与折线图 (qq.com)

数据

rm(list = ls()) 
library(tidyverse)
library(gapminder)
library(Hmisc)
library(gapminder)data <- gapminder
##提取continent=="Asia"的数据
df <- data %>% filter(continent=="Asia") %>% select(1,3,4,6) %>% mutate(year=as.character(year))p <- ggplot() +stat_summary(data=df, aes(year, lifeExp), fun = "mean", geom = "bar", alpha = 0.7, fill="#00A08A") +# 添加预期寿命(lifeExp)的误差条stat_summary(data=df, aes(year, lifeExp), fun.data = "mean_cl_normal", geom = "errorbar", width = .2, color="#00A08A") +# 添加人均GDP(gdpPercap)的误差条stat_summary(data=df %>% mutate(gdpPercap=gdpPercap/20), aes(year, gdpPercap), fun = mean, geom = "errorbar", width=.2, color="#F98400",fun.max = function(x) mean(x) + sd(x) / sqrt(length(x)),fun.min = function(x) mean(x) - sd(x) / sqrt(length(x))) +# 添加人均GDP(gdpPercap)的平均值点stat_summary(data=df %>% mutate(gdpPercap=gdpPercap/20), aes(year, gdpPercap), fun = "mean", geom = "point", size=3, color="#F98400") +# 添加人均GDP(gdpPercap)的平均值线stat_summary(data=df %>% mutate(gdpPercap=gdpPercap/20), aes(year, gdpPercap, group=1), fun = "mean", geom = "line", color="#F98400") +# 设置y轴的比例和标签scale_y_continuous(expand = c(0, 1), breaks = scales::pretty_breaks(n = 12),sec.axis = sec_axis(~. * 20, breaks = scales::pretty_breaks(n = 12),name = "gdpPercap")) +# 应用主题theme_test() +# 自定义主题设置theme(panel.background = element_blank(),axis.ticks.length.x.bottom = unit(-0.05, "in"),axis.ticks.length.y.left = unit(-0.05, "in"),axis.ticks.length.y.right = unit(-0.05, "in"),axis.line.y.left = element_line(color="#00A08A"),axis.line.y.right = element_line(color="#F98400"),axis.line.x.bottom = element_line(color="black"),axis.line.x.top = element_line(color="grey80"),axis.text.y.right = element_text(color="#F98400", margin = margin(l = 5, r = 10)),axis.text.y.left = element_text(color="#00A08A", margin = margin(l = 10, r = 5)),axis.title.y.left = element_text(color="#00A08A", face="bold"),axis.title.y.right = element_text(color="#F98400", face="bold"),axis.title.x.bottom = element_blank())
p
dev.off()


参考:

1:《R语言实战手册》

2:Gut microbiota modulates weight gain in mice after discontinued smoke exposure

相关文章:

R折线图(自备)

目录 折线图基础 创建散点和折线图 复杂折现加图例 折线图柱状图 数据处理 进行差异检验 基础绘图折线 基础绘图箱线 进行合并 双轴柱状与折线图 数据 折线图基础 创建散点和折线图 rm(list ls()) opar <-par(no.readonlyTRUE)##自带orange数据集 par(mfrowc…...

web学习笔记(四十五)Node.js

目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3 node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3 向文件写入指定内容 2.4 创…...

基于Gabor滤波器的指纹图像识别,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…...

55、Qt/事件机制相关学习20240326

一、代码实现设置闹钟&#xff0c;到时间后语音提醒用户。示意图如下&#xff1a; 代码&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(t…...

Clip Converter - 视频在线下载方法

Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…...

【No.19】蓝桥杯简单数论上|模运算|快速幂|GCD|LCM|刷题统计|RSA解密|核桃的数量(C++)

简单数论 模运算 定义&#xff1a;模运算为 a 除以 m 的余数&#xff0c;记为 a mod m&#xff0c;有 a mod m a % m模运算是大数运算中的常用操作。如果一个数太大&#xff0c;无法直接输出&#xff0c;或者不需要直接输出&#xff0c;可以把它取模后&#xff0c;缩小数值再…...

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用&#xff0c;其安全问题也日益凸显。其中&#xff0c;分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施&#xff0c;并提出相应的防护策略。 一、区块链面…...

使用Spark单机版环境

在Spark单机版环境中&#xff0c;可通过多种方式进行实战操作。首先&#xff0c;可使用特定算法或数学软件计算圆周率π&#xff0c;并通过SparkPi工具验证结果。其次&#xff0c;在交互式Scala版或Python版Spark Shell中&#xff0c;可以进行简单的计算、打印九九表等操作&…...

【分布式】——降级熔断限流

降级&熔断&限流 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记仓库&#x1f449;https://github.com/A-BigTree/tree-learning-notes 个人主页&#x1f449;https://www.abigtree.top ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点…...

代码随想录刷题笔记 Day 58 | 判断子序列 No.392 | 不同的子序列 No.115

文章目录 Day 5801. 判断子序列&#xff08;No. 392&#xff09;<1> 题目<2> 题解<3> 代码 02. 不同的子序列&#xff08;No. 115&#xff09;<1> 题目<2> 题解<3> 代码 Day 58 01. 判断子序列&#xff08;No. 392&#xff09; 题目链接…...

【C++11】thread线程库

【C11】thread线程库 目录 【C11】thread线程库thread类的简单介绍函数指针lambda表达式常用在线程中 线程函数参数join与detach利用RAII思想来自动回收线程 原子性操作库(atomic)atomic中的load函数&#xff1a;atomic中对变量进行原子操作的一些函数 CAS(Compare-And-Swap)无…...

【OpenStack】创建系统(VM)实例镜像及实例创建方法

【OpenStack】创建系统(VM)实例镜像及实例创建方法 目录 【OpenStack】创建系统(VM)实例镜像及实例创建方法创建计算镜像加载基本镜像预建镜像手动实例创建cloud-init 搭救使用 `cloud-init` 配置启动实例连接到您的新实例为实例分配 Floating IP创建SSH隧道结论推荐超级课程:…...

灵途科技助力家电智能创新

从智能家电到个护健康&#xff0c;科技无时无刻不在刷新我们对智慧生活的认知&#xff0c;我们也从未像今天这样近距离贴近智慧生活的朴素本质——传感技术。灵途科技专注光电感知技术&#xff0c;持续为智能家电客户提供成熟的全方位感知解决方案。步入发展第八年&#xff0c;…...

Flask python :logging日志功能使用

logging日志的使用 一、了解flask日志1.1、Loggers记录器1.2、Handlers 处理器1.3、Formatters 格式化器 二、使用日志2.1、官网上的一个简单的示例2.2、基本配置2.3、具体使用示例2.4、运行 三、写在最后 一、了解flask日志 日志是一种非常重要的工具&#xff0c;可以帮助开发…...

ethers.js:sign(签名)

Signers 在ethers中Signer是以太坊账户的抽象&#xff0c;可以用来签名消息和交易&#xff0c;如将签名的交易发送到以太坊网络以执行状态更改的操作。 npm install ethers5.4.0// 引入 import { ethers } from ethers签名 this.provider new ethers.providers.Web3Provider(…...

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…...

【Python笔记-FastAPI】定时任务实现(APScheduler)

目录 一、常见触发器 (一) DateTrigger (二) IntervalTrigger (三) CronTrigger (四) CombinationTrigger 二、代码示例 (一) task_scheduler.py (二) client.py 三、调用说明 (一) 注册任务 (二) 查询任务 (三) 删除任务 实现功能: 定时任务注册、修改、删除、查…...

『Apisix入门篇』从零到一掌握Apache APISIX:架构解析与实战指南

&#x1f4e3;读完这篇文章里你能收获到&#xff1a; &#x1f310; 深入Apache APISIX架构&#xff1a; 从Nginx到OpenResty&#xff0c;再到etcd&#xff0c;一站式掌握云原生API网关的构建精髓&#xff0c;领略其层次化设计的魅力。 &#x1f50c; 核心组件全解析&#xff…...

easyExcel大数据量导出oom

easyExcel大数据量导出 异常信息 com.alibaba.excel.exception.ExcelGenerateException: java.lang.OutOfMemoryError: GC overhead limit exceededat com.alibaba.excel.write.ExcelBuilderImpl.fill(ExcelBuilderImpl.java:84)at com.alibaba.excel.ExcelWriter.fill(Excel…...

react native上传二进制图片、视频的方法

react native获取本地图片我用的react-native-image-picker&#xff0c;但是它只能获取图片路径&#xff0c;以及base64的图片&#xff0c;不能获取到binary二进制形式的。 一开始我是让后端改造接口&#xff0c;把原本传binary的改成了base64&#xff0c;可是&#xff0c;躲得…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

前端调试HTTP状态码

1xx&#xff08;信息类状态码&#xff09; 这类状态码表示临时响应&#xff0c;需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分&#xff0c;客户端应继续发送剩余部分。 2xx&#xff08;成功类状态码&#xff09; 表示请求已成功被服务器接收、理解并处…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”

非常好&#xff0c;我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题&#xff0c;统一使用 二重复合函数&#xff1a; z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y))​ 来全面说明。我们会展示其全微分形式&#xff08;偏导…...