ggplot2密度图与面积图:从数据分布到趋势总量的可视化指南
科学统计图表绘制系列终于写到第二篇了。上一篇把散点图、折线图讲透之后后台很多做数据分析的朋友来问展示数据分布除了直方图还有什么好方案展示时间趋势时如何在折线图之外增加信息密度这两个问题恰好对应这期要讲的密度分布图、面积图以及很多人口中“另一个密度图”。先说结论这期内容实操性很强。密度分布图也就是密度图核心是geom_density解决的是“数据形态长什么样”的问题适合看单峰、双峰、偏态、拖尾等分布特征面积图核心是geom_area解决的是“这个量随时间或类别累积了多少”的问题适合做趋势下的总量感。你在论文配图、业务报表、探索性分析里这两类图基本都能用得上。这篇博文我会把原理、参数、完整可复现代码、还有我实际用下来踩过的坑一次性串起来。你跟着跑一遍后面遇到类似场景就完全不用再翻文档。1. 两类图的设计初衷与核心应用场景1.1 密度分布图直方图的“光滑升级版”先讲密度图。很多人第一次接触密度图时觉得它就是个“用曲线代替柱子”的直方图这个理解不算错但容易忽略密度图真正的好处它对分布形态的还原更精细。直方图有个很头疼的问题——分箱宽度binwidth的选择。binwidth设得太小柱子参差不齐看起来很碎设得太大细节被磨平两个峰可能被合并成一个平顶。不同的箱子宽度会直接改变你对同一份数据的判断。密度图则不同它对每个数据点做核密度估计相当于在每个点周围铺一个平滑的“山包”再把所有“山包”叠加归一化得到一条光滑曲线。你不需要纠结切箱子的问题只需要调一个带宽参数曲线的平滑程度就能被直观控制。密度图还有一个直方图比不上的地方它适合多组分布叠加对比。直方图一叠加就互相遮挡密度图可以设置半透明填充几种分布叠在一起中心峰、尾部厚度、偏斜方向一目了然。我平时做A/B测试数据复盘时对照组和实验组的指标分布叠在一起比任何显著性检验图都直观。应用场景里密度图常用在这么几个地方数据探察阶段的分布形态分析、多个实验组之间的分布对比、异常数据的尾部观察以及作为其他复杂模型结果图的基础层。1.2 面积图折线图底下“加了肉”面积图可以理解为折线图的“加强版”区别在于折线到x轴之间的区域被颜色填充。可别小看这个填充人的视觉对“面积”比“线段走向”更敏感。同样是三年内用户增长趋势折线图你看到的是线的高低起伏面积图让你看到的则是一个“体的积累”。从y轴、x轴和曲线围起来的面积里你能直接感受到“总量”的存在感。特别是当你要向业务方或者非技术背景的同事解释“这个季度新用户规模接近上一年的累计水平”时面积图比折线图更有说服力。面积图的另一个重要形态是堆积面积图。你有多组时间序列它们加在一起构成总量。比如不同渠道带来的用户量、不同产品的收入结构、多个模块的耗时拆分。堆积面积图能够在展示总量趋势的同时反映各组成部分之间的比例变化和绝对量变化一举两得。密度图和面积图放一起讲是因为它们在R里的实现都是“一个geom函数配几个参数”数值型变量分布、日期趋势汇总这两大分析诉求碰巧一起解决最顺手。2. ggplot2绘图核心参数与逻辑拆解2.1 geom_density的核心参数bw、adjust、kernel、cut先上最基本的密度图代码结构ggplot(数据, aes(x 变量)) geom_density()看起来简单但真正需要理解的是它背后的参数尤其是bw和adjust。这两个参数直接影响曲线的平滑度。bw是带宽bandwidth单位与x轴变量一致。带宽越大曲线越平滑但细节丢失越多带宽越小曲线越能贴合数据但可能出现不自然的毛刺。R默认会用一个基于数据标准差和样本量的公式Silverman规则来自动计算带宽在大多数情况下够用但不要迷信默认值。举个例子如果样本标准差是2.5样本量是200默认带宽可能算出来大约0.37左右。你可以通过显式指定带宽来调整ggplot(airquality, aes(x Temp)) geom_density(bw 1) # 带宽1细节多一些adjust参数是带宽的“缩放倍率”。它不直接改变带宽数值而是把默认带宽乘以一个系数。实测下来我觉得用它调平滑度最顺手adjust 1/2让曲线更细致adjust 2更平滑。日常我一般是先跑默认再看曲线毛刺程度决定是否需要 adjust。ggplot(airquality, aes(x Temp)) geom_density(adjust 1/2)kernel参数指定核函数类型。常见的有高斯核gaussian、余弦核cosine、三角核triangularggplot默认高斯核。实际使用中不同核函数的差异远小于带宽的影响除非对方法学有特殊要求否则不用折腾。cut参数控制曲线向数据范围外延伸的长度默认会延伸到数据最值外侧约4倍带宽的位置。有时你可能希望曲线严格不超出数据范围把它设置成0即可。不过这种情况很少见多用于某些特定汇报场景下的视觉严谨性。还有两个和外观相关的参数fill控制填充颜色、alpha控制填充透明度。当你需要叠加多个分布时透明度是必须设置的不然背景分布会被完全挡住。2.2 geom_area的核心参数position、group、na.rm面积图的基本形态是ggplot(数据, aes(x 日期变量, y 数值变量)) geom_area()重点是position参数。它有三个取值identity、stack、fill。默认情况下geom_area使用position identity也就是每条序列从0开始画填充区域。如果你只有一个序列或者多个序列用透明度叠放这个模式没问题。但多序列时叠加会互相遮挡最佳实践是改成堆叠模式。ggplot(数据, aes(x 日期变量, y 数值变量, fill 分组变量)) geom_area(position stack)stack模式把各组的数值“一层一层”往上累加每一层的高度代表该组在当期的实际数值所有层的总高度代表总量。这种图适合展示绝对量的构成变化。fill模式则是把每组换算成百分比叠起来后总高度恒为1即100%每一层的高度代表该组占比。这种图适合展示相对结构的变化比如不同产品收入占比的逐月演变。只用一行参数切换图形传达的信息就从“有多少”变成了“占多少”。分组的另一个关键点是group。当你用fill映射分组变量时ggplot会自动按fill的分组来分组一般不需要显式设置group。但有一个坑如果x轴是连续型数值而你只想画单条面积曲线但fill或color映射了另一个无关变量曲线可能被切碎成多段。遇到这种情况检查是否需要显式指定group 1ggplot(数据, aes(x 变量, y 数值, group 1)) geom_area()na.rm这个参数在面积图中也值得留意。时间序列经常有缺失值默认为FALSE时数据点缺失会导致区间不连续或者干脆报错。如果你确定缺失点可以忽略、需要把前后值连起来可以设置na.rm TRUEgeom_area(na.rm TRUE)不过要提醒一句如果缺失区间很大建议不要硬连那会在图上制造“实际上升”的假象。2.3 颜色、填充与主题让图从“能看”到“好看”很多人都栽在配色这一步上。默认的ggplot灰色主题其实非常专业但如果你想让图看起来更精致三个函数值得记住。首先是scale_fill_*系列。离散分组时用scale_fill_brewer(palette Set2)虽然代码看起来复杂了点但所有颜色亮度协调打印出来也舒服。连续渐变用scale_fill_viridis_c()或scale_fill_distiller(palette Spectral)。其次是透明度。叠加多个密度图时alpha 0.3~0.5是一个比较稳的区间。小于0.2颜色太淡看不出形状大于0.6底层分布几乎看不见。最后是主题。我通常用theme_minimal()或者theme_classic()。theme_classic()保留边框、去除灰色背景简直是为学术文章插图而生ggplot(airquality, aes(x Temp)) geom_density(fill steelblue, alpha 0.4) theme_classic(base_size 14)图例位置、标题字体大小这些细节等出图后再调不需要一开始就死磕。3. 实操过程从数据到成品图的完整流程3.1 环境准备与数据引入我这边以R自带的空气质量数据集airquality和ggplot2自带的economics数据集为例。前者包含纽约1973年5月到9月每日的臭氧、太阳辐射、风速、温度数据适合做分布分析后者包含美国近几十年每月经济指标适合做时间趋势面积图。两个数据集都不需要额外下载加载包就能用。先确认环境library(ggplot2) library(dplyr) library(tidyr)dplyr和tidyr不是必需的但对数据处理很有帮助。没有安装的用install.packages(c(ggplot2, dplyr, tidyr))装一下。加载数据data(airquality) data(economics, package ggplot2)先看一眼数据结构确认变量类型和缺失值str(airquality) summary(airquality) head(economics)这里有个实操习惯任何绘图任务之前先用summary检查数据范围、缺失值数量。温度变量Temp没有缺失可以直接用臭氧Ozone有缺失绘图时要注意。3.2 基本密度分布图运行、优化、解读先画一个最基本的温度密度图p1 - ggplot(airquality, aes(x Temp)) geom_density(fill steelblue, alpha 0.5) labs(title 5-9月气温分布密度图, x 温度华氏, y 密度) theme_classic(base_size 14) print(p1)运行后你会看到一条单峰曲线峰值在75华氏度附近右侧尾巴略长。这说明气温有轻微右偏夏季某些天显著偏热。这就是密度图给到你的第一个信息形态。如果想增加细节可以叠加毛须图rug plot。它能把每个实际数据点在x轴上的位置标出来让你看到曲线下方的数据支撑情况p1 geom_rug(alpha 0.3)毛须很密集的地方曲线往往比较高毛须稀疏的地方曲线迅速下降。这个细节在日常汇报里特别加印象分。如果我想对比不同月份的气温分布直接在aes里加分组映射p2 - ggplot(airquality, aes(x Temp, fill factor(Month))) geom_density(alpha 0.5) scale_fill_brewer(palette Set2) labs(title 各月气温分布对比, fill 月份, x 温度华氏, y 密度) theme_classic(base_size 14) print(p2)注意这里执行后5月份曲线峰可能偏左更凉快7、8月份整体右移而且夏季峰更高更窄温度更集中。这就是多组分布对比的价值——你能一眼看出组间位置差异和离散程度差异。如果月份分组太多导致曲线重叠看不清可以用分面代替叠放p3 - ggplot(airquality, aes(x Temp, fill factor(Month))) geom_density(alpha 0.6) facet_wrap(~Month, ncol 2) theme_minimal(base_size 14) print(p3)分面之后每个小图的分布形态更独立清晰缺点是失去了直接对比的“重叠感”。我的经验是两组到三组用重叠超过三组用分面。3.3 实战多组对比密度图与分面组合多组对比时有个默认参数坑需要注意。geom_density默认的position是identity多组直接叠放。这通常是我们想要的。但如果组间数量差异很大个别组的曲线会比较矮因为密度是对面积归一化的样本量大的组峰值不一定高。如果你希望看到的是“各组样本量的绝对大小”而非“相对密度”那就应该改用直方图或者密度乘以样本量的方式而不要咬死密度图不放。我做分布对比时还会同时画一条中位线辅助观察ggplot(airquality, aes(x Temp, fill factor(Month))) geom_density(alpha 0.4) geom_vline(xintercept median(airquality$Temp), linetype dashed, alpha 0.6) theme_minimal()用分面布局时为了让各组独立设置中位线需要构造一个按组汇总的中位数数据框med_df - airquality | group_by(Month) | summarise(mid_temp median(Temp, na.rm TRUE)) ggplot(airquality, aes(x Temp)) geom_density(fill steelblue, alpha 0.5) geom_vline(data med_df, aes(xintercept mid_temp), linetype dashed, color darkred) facet_wrap(~Month, ncol 2) theme_minimal(base_size 14)中位线的作用是给读者一个“中心在哪里”的锚点尤其是多个分面放在一起时眼睛可以快速扫过去进行比较。我几乎所有密度图分面都会搭配这样一条线效果立竿见影。3.4 实操基础面积图与堆积面积图接着用economics数据集画面积图。我们先看失业人数随时间的变化p4 - ggplot(economics, aes(x date, y unemploy)) geom_area(fill gold, color darkred, linewidth 0.8) labs(title 美国失业人数变化月度, x 日期, y 失业人数千人) theme_minimal(base_size 14) print(p4)这个图出来你能看到曲线下的金色区域在2000年代和2008年前后明显“变厚”面积感直观地体现了失业问题的严重程度。如果只画折线这种“体量感”会弱很多。接下来是堆积面积图。我们把economics中几个指标放在一起比如个人储蓄率psavert、中位失业时长uempmed、失业人数unemploy。因为量纲不同直接堆叠没意义我在这里用比例填充模式更合适econ_long - economics | select(date, psavert, uempmed, unemploy) | pivot_longer(-date, names_to indicator, values_to value) ggplot(econ_long, aes(x date, y value, fill indicator)) geom_area(position fill) scale_fill_brewer(palette Set2) labs(title 经济指标构成比例变化, x 日期, y 占比) theme_minimal(base_size 14)position fill会把每个时间点上所有指标加总为1各色带的高度代表该指标的占比。如果想看绝对量堆积把position fill改成position stack即可。这里有个数据量纲的细节堆积面积图要求所有分组的y轴刻度可比。如果一组是几百失业人数千人另一组是个位数百分比个人储蓄率堆出来的图会完全被量纲大的组主导量纲小的组在底部几乎看不见。这种情况下不要硬堆改用分面或者对数据做标准化后再堆。我踩过这个坑一开始把不同量纲的指标堆在一起出来的图让业务方误以为某些指标几乎为零后来规范了对齐量纲后才解决。3.5 组合布局与输出规范绘图完成后把多个图组合排版是高频需求。我常用的方案有两个patchwork包和gridExtra包。library(patchwork) combined - p1 p2 p3 p4 plot_layout(ncol 2, widths c(1, 1)) plot_annotation(tag_levels A) print(combined)patchwork的语法非常直观就是拼接/是上下排列。配上标签水平、标签大小设置一张能放进论文或汇报PPT的组图就完成了。最后输出图片文件时要注意分辨率和尺寸。我用ggsave的习惯是ggsave(density_area_combined.png, combined, width 10, height 8, dpi 300)dpi给300印刷不糊。如果是PPT汇报dpi 150就够文件体积还能小不少。4. 常见问题与排查技巧实录4.1 密度曲线y轴数值高得离谱是不是画错了这是被问最多的问题。很多人第一次画密度图看到y轴上是2.5、3.0甚至更大第一反应是代码写错了。其实没有错。密度曲线下面的总面积永远等于1。如果x轴的数据范围很小比如0到1之间为了让面积等于1y轴上的高度就必须相应变大。这就好比你把1平方米的东西压到0.5米宽高度自然变成2米。遇到这种情况你要么明白密度本身的含义并照常解读要么改用直方图并且把纵轴改成百分比。如果是对非技术观众汇报我通常会直接说“这条线越高的位置数据越密集”绝不要让对方纠结密度单位的定义。4.2 带宽太大或太小曲线形态两极分化如果曲线平滑得像一条抛物线什么细节都看不出来那是带宽太大如果曲线毛刺多得像被电过那是带宽太小。我的处理方式是逐级尝试adjust。先adjust 1看默认然后分别试0.5和2选择视觉上最自然、且能保留关键峰谷的那一个。对于样本量特别大的数据可以适当降低adjust值到0.3左右来保留细节样本量只有几十个时用adjust 2以上反而更稳。一个小经验当你发现密度图出现两个峰而其中一个峰非常小、像个小鼓包时不要急着下“双峰分布”的结论。先用高带宽和平滑参数确认小鼓包不是噪声引起的再考虑是否存在子群。正式发表成果时最好还用额外方法做双峰检验不要只看图说话。4.3 堆积面积图顺序错乱、图例和图形对不上堆积面积图的堆叠顺序默认按照因子水平的排列顺序。如果分组变量不是因子ggplot会按字母顺序排。你希望某个组显示在最底层或最顶层需要显式设置因子水平economics$indicator - factor(economics$indicator, levels c(unemploy, uempmed, psavert))设置好之后图例顺序、堆叠顺序、颜色对应关系都会同步调整。这个细节我建议一开始就做等图都画完了再改因子顺序图例位置和颜色映射都会重新排列容易看花眼。4.4 数据量太少密度图形状不稳定密度估计在样本量不足时非常不靠谱。少于20个点的时候曲线基本就是在几个点上“吹泡泡”怎么调带宽都别扭。这种情况下我一般建议放弃密度图改用散点加抖动、箱线图、小提琴图或者把原始数据点直接画出来。如果必须用密度图至少要在图上叠加原始数据点可以用geom_jitter明确告诉读者样本量和支持数据的位置。诚实比漂亮重要。4.5 中文标签乱码或方块字R在Windows上画图最经典的中文乱码问题恐怕每个用过的人都被它折磨过。解决方案有几种我推荐用showtext包最省心library(showtext) font_add(heiti, simhei.ttf) showtext_auto()然后在ggplot主题里设置family heiti就能正常显示中文。macOS上可以用苹方或华文黑体。Linux上可能需要找系统中文字体路径。这些年我养成的习惯是在项目脚本最开始统一加载showtext并自动开启避免任何后续图形出现字体问题。还有一个偷懒方案所有文字标注都用英文。论文插图很多时候本来就是英文排版这也避免了字体匹配问题。4.6 面积图出现锯齿状边缘不光滑面积图如果x轴粒度较粗曲线边缘会出现明显的折线感。这不是bug是原始数据本身的分辨率问题。你可以通过增加x轴方向的插值点来减少锯齿ggplot(economics, aes(x date, y unemploy)) geom_area() geom_smooth(se FALSE, method loess, span 0.1, color darkred)但要注意平滑曲线和原始面积图混在一起时面积填充边缘和平滑线是两条不同逻辑的线需要把颜色和线型区分开否则会误导读者以为面积图的顶部就是平滑曲线。我通常会这样做先画原始面积图作为背景再画一条平滑线专门强调趋势两件事分开表述。还有个技巧是把日期变量转换成数值型时间戳并插值再用geom_area绘制插值后的数据。不过说实话日期粒度不够细时最优雅的方案不是插值而是直接把折线面积图改成散点加点线图让数据的不规则性本身成为信息的一部分。4.7 “密度分布图、面积图、密度图”三者到底怎么区分每次写代码前先想清楚你要什么不然容易搞混。密度分布图的重点是纵轴为密度、横轴为数值变量的分布曲线密度图在R中通常就是指同一件事核心函数geom_density面积图的关键是x轴为有序变量通常是时间、y轴为累加或占比的填充区域图。如果你的需求是“看一个变量在数值轴上的密集程度”选密度分布图如果你的需求是“看一个量随时间底下的累积量以及构成变化”选面积图。5. 最后分享几个小技巧绕了这么多代码和参数最后分享几个我实际做图多年总结下来的小习惯不算高深但都很实用。第一密度图的填充色尽量选择沉稳的颜色不要用纯红纯黄这种刺眼色。密度图的核心是形态对比颜色是辅助。我常用的是steelblue、firebrick、darkgreen这一档的颜色配上半透明叠在一起既不脏又不刺眼。第二画面积图时先把图例放在底部因为面积图的各组色块随着时间会切换上下位置图例放右边时视线需要来回跳放底部会更省力。第三无论密度图还是面积图出图前一定检查x轴范围。密度图如果数据有极端离群值曲线会被“拉扁”正常的形态被压缩在很小的区域内这时候用xlim截断可视化范围但要用coord_cartesian(xlim c(...))而非xlim()保留全部数据的同时只放大主要分布区间。第四凡是展示给外行看的数据图都最好在图下方加一句“这句话”式的结论。不加文字说明听众只会觉得“哦有个峰”加上一句“这个峰出现在下午两点左右对应午休后的访客高峰”图的价值立刻就出来了。这期关于密度分布图和面积图的内容到这里就完整了。如果你按照上面的顺序把代码跑一遍我相信以后再遇到“想看看分布形态”和“想展示趋势下的总量感”这两个需求都会第一时间想起这两个不花哨但极好用的图。下一篇我准备继续往后写把手头这套科学统计图表的进阶图层逐一补全。

相关新闻

Nexent SDK 工具开发规范深度解析:从工具分类、代码模板到源码级实现

Nexent SDK 工具开发规范深度解析:从工具分类、代码模板到源码级实现

人工智能AI AgentAgent 编排低代码AI 技能RAG 【免费下载链接】nexent Nexent 是一个开源智能体SDK和平台,能够将描述流程的自然语言转化为完整的多模态服务 —— 无需编排,无需复杂拖拉拽。基于 MCP 工具生态系统构建,Nexent 提供灵活的模型…

2026/10/15 15:52:07 阅读更多 →
从轨道根数到可视化:卫星轨道模拟仿真程序实战

从轨道根数到可视化:卫星轨道模拟仿真程序实战

简介:MATLAB卫星轨道模拟仿真程序包,面向航天工程、轨道动力学方向的学习与研究人员,用于预测人造卫星运动轨迹、验证轨道机动与转移方案,可应用于任务规划、姿态控制与教学演示。包内共67个文件,以66个m脚本为主要实现…

2026/10/15 15:52:07 阅读更多 →
【鸿蒙优选三方库】@ohos/coap:让鸿蒙设备说上 IoT 的母语

【鸿蒙优选三方库】@ohos/coap:让鸿蒙设备说上 IoT 的母语

【鸿蒙优选三方库】ohos/coap:让鸿蒙设备说上 IoT 的母语 传感器跑在电池供电的 MCU 上,HTTP 的 TCP 握手加几百字节 header 太奢侈,MQTT 还得部署 Broker。CoAP 基于 UDP,报文头只有 4 字节,还能组播——这才是受限设…

2026/10/15 15:52:07 阅读更多 →

最新新闻

Dr. Claw系统架构解析:React、Express、WebSocket三层协同与多Agent流式调度原理

Dr. Claw系统架构解析:React、Express、WebSocket三层协同与多Agent流式调度原理

【免费下载链接】dr-claw A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power. 项目地址: https://gitcode.com/gh_mirrors/dr/dr-claw 点击查看 免费下载 Dr. Claw 是一款开源的全栈 AI 科研工作台,支持 Cla…

2026/10/15 16:41:51 阅读更多 →
Grafana Mimir 术语表深度解析:Blocks storage、Hash ring、WAL 等核心概念全解

Grafana Mimir 术语表深度解析:Blocks storage、Hash ring、WAL 等核心概念全解

时序数据库后端数据存储可观测性云原生 【免费下载链接】mimir Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus. 项目地址: https://gitcode.com/gh_mirrors/mimir/mimir 点击查看 免费下载 Gr…

2026/10/15 16:41:51 阅读更多 →
AI率从92%降到0%!六个步骤彻底“去AI化”改写文本

AI率从92%降到0%!六个步骤彻底“去AI化”改写文本

“AI率92%”这个数字,我太熟了。 前阵子我用AI辅助写了篇文章,初稿检测出来AI率高达92%,基本就是一台无情的打字机。后来我花了一晚上打磨,再查的时候,AI率直接压到了0%,而且查重也顺利通过。 整个过程&…

2026/10/15 16:41:51 阅读更多 →
JSON实战样本:6类可直接运行的生产级JSON示例

JSON实战样本:6类可直接运行的生产级JSON示例

简介:本资源是一份面向初学者与Web开发者的JSON格式实践学习包,聚焦数据交换核心技能的掌握与工程化应用。内容以典型JSON结构示例为切入点,覆盖键值对、嵌套对象、数组、布尔与null等基础语法,并配套Java环境下的完整解析与生成实…

2026/10/15 16:41:51 阅读更多 →
用友UAP开发NC65主子表单据:向导链路与避坑指南

用友UAP开发NC65主子表单据:向导链路与避坑指南

简介:面向用友UAP NC65开发者的主子表单据开发资源包,提供向导式开发全流程的详细步骤讲解,帮助刚接触UAP平台的新手理解主表、子表、外键关联与一对多数据模型,并能在表单设计中完成控件绑定、查询条件设置、子表联动刷新以及增删…

2026/10/15 16:41:51 阅读更多 →
制造车间MES设备看板怎么落地:从设备接入到工单影响验证

制造车间MES设备看板怎么落地:从设备接入到工单影响验证

设备看板项目容易从“大屏展示什么”开始讨论,但更需要先回答三个现场问题:设备信息从哪里来,停机后如何找到受影响工单,异常处理后由谁确认恢复。若这三件事没有业务规则支撑,画面即使更新,也难以支持生产…

2026/10/15 16:40:49 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →