【matlab】箱线图实战:从数据导入到高级可视化技巧
1. 从零开始你的第一张MATLAB箱线图说实话我第一次用MATLAB画箱线图的时候也犯过迷糊。看着一堆数据想看看它们的分布情况听说箱线图Box Plot特别直观能一眼看出中位数、四分位数甚至异常值。但打开MATLAB面对那个叫boxplot的函数参数一大堆瞬间有点懵。后来在科研项目里用多了才发现这东西真是数据分析的“利器”尤其是当你需要对比多组数据的分布差异时它比单纯看平均值靠谱多了。箱线图也有人叫它盒须图它的核心就是用一个“盒子”和两根“须”来概括一组数据。盒子的上下边界对应数据的上四分位数Q3和下四分位数Q1盒子中间那条线就是中位数。从盒子伸出去的“须”通常延伸到非异常值的最小值和最大值而那些单独画出来的小圆圈或者星号就是被判定为异常值的数据点。这么一画数据的集中趋势、离散程度以及偏态全都一目了然。在MATLAB里画箱线图最核心的函数就是boxplot。别看它名字简单里面的门道可不少。咱们先别管那些高级技巧就从最基础的、能把图先画出来开始。我经常跟实验室的师弟师妹说学工具就像学开车先能开上路再研究怎么漂移。所以这一部分咱们就专注“上路”。首先你得有数据。数据从哪来可能是你实验测的一堆数值也可能是从Excel、CSV文件里导出来的。在MATLAB里准备数据最常见的就是用数组或者矩阵。比如说我手头有三组学生的考试成绩想看看每组成绩的分布。我可以这样创建数据% 假设有三组学生的数学成绩 group1 [78, 85, 92, 88, 76, 95, 81, 79, 90, 87]; % 第一组 group2 [65, 72, 80, 68, 90, 62, 75, 78, 71, 85]; % 第二组 group3 [95, 98, 89, 92, 96, 88, 93, 91, 97, 94]; % 第三组 % 将三组数据合并成一个矩阵每一列代表一组数据 score_data [group1, group2, group3];这里有个小细节boxplot函数默认将矩阵的每一列视为一个独立的数据组来绘制一个箱线图。所以我把三个行向量转置成了列向量用运算符然后并排放在一起形成了一个10行3列的矩阵score_data。这样boxplot就会为我们画出三个并排的箱子。数据准备好了画图就一句话的事figure; % 新建一个图形窗口 boxplot(score_data); % 绘制箱线图 title(三组学生数学成绩分布对比); % 给图加个标题 xlabel(学生分组); % 给X轴加标签 ylabel(考试成绩); % 给Y轴加标签运行这几行代码一张最基础的、带有三个箱子的箱线图就跃然屏上了。你会看到三个并排的盒子每个盒子中间有根线中位数盒子上下有“须”。如果某个学生的成绩离群太远可能会以“”号的形式单独标记在图形外面那就是异常值。这张图已经能告诉我们很多信息了比如第三组最右边的成绩整体很高盒子位置靠上且盒子“瘦”说明大家分数集中差距小第二组的盒子“胖”一些可能分数分布更分散。但这时候你可能会发现X轴下面默认标的是1、2、3而不是我们想要的“第一组”、“第二组”这样的名字。图看起来也有点“素”没有网格线不方便精确读数。别急这些正是我们接下来要解决的“装修”问题。先把图画出来建立信心咱们再一步步把它变得既专业又美观。2. 数据导入与整理让MATLAB读懂你的数据画图的第一步永远是把数据“喂”给MATLAB。在实际的科研或工程中我们的数据很少是直接在脚本里敲出来的更多是来自外部文件。如果数据导入这一步没做好后面画图全是白搭。我见过不少新手代码写得没问题但因为数据格式不对图死活画不出来或者画出来是错的。所以咱们花点时间把数据导入和前期整理这个地基打牢。最常遇到的数据格式无非几种文本文件.txt, .csv、Excel文件.xlsx, .xls和MATLAB自带的数据文件.mat。每种格式的“吃法”略有不同。从CSV/TXT文件导入这类文件通用性最强。MATLAB提供了readmatrix和readtable两个好用的函数。readmatrix会把数据读成一个数值矩阵非常干净利落适合纯数字的数据。比如你有一个scores.csv文件里面三列数字就是三组成绩没有表头那么score_data_from_csv readmatrix(scores.csv); % 直接得到数值矩阵 boxplot(score_data_from_csv);如果你的CSV文件有表头比如第一行写着“Group1”“Group2”“Group3”用readmatrix可能会把表头也当数字读导致错误。这时候可以用readtabledata_table readtable(scores_with_header.csv); % 读成表格table格式 % 假设表格有三列列名是‘Group1’‘Group2’‘Group3’ score_data_from_table [data_table.Group1, data_table.Group2, data_table.Group3]; boxplot(score_data_from_table);readtable会智能地处理表头并把数据存为一种叫table的类型你可以通过点号.加列名来访问每一列数据非常直观。从Excel文件导入如果你习惯用Excel整理数据那readmatrix和readtable同样适用只需把文件名后缀改成.xlsx就行。MATLAB对Excel的支持很好甚至可以指定读取哪个工作表Sheet。比如% 读取‘Sheet1’工作表中从A1到C10范围的数据 score_data_from_excel readmatrix(data.xlsx, Sheet, Sheet1, Range, A1:C10);处理缺失值NaN真实数据常有缺失在文件里可能表现为空单元格、‘NA’、‘-999’等。readmatrix默认会把无法解析为数字的单元格变成NaNNot a Number。boxplot函数是能处理NaN的它会自动忽略这些缺失值进行计算和绘图。但你需要心里有数知道数据里有缺失。你可以用isnan函数检查一下missing_count sum(isnan(score_data(:))); % 计算整个矩阵中NaN的个数 disp([数据中包含 , num2str(missing_count), 个缺失值]);数据导入后整理是关键一步。boxplot期望的输入数据格式主要有两种矩阵格式就像我们之前做的每一列是一个组。这是最常用、最直接的方式。向量分组变量格式当你数据本身是一个很长的向量同时有另一个同样长度的向量指明每个数据点属于哪一组时可以用这种格式。这在数据存储形式比较“原始”时很方便。举个例子假设所有学生的成绩都混在一个长列表里同时有一个列表记录每个成绩属于哪一组all_scores [78, 85, 92, 65, 72, 95, 98, ...]; % 所有成绩混在一起 group_labels [1, 1, 1, 2, 2, 3, 3, ...]; % 对应每个成绩的组别标签123 figure; boxplot(all_scores, group_labels); % 使用第二个参数指定分组这种方式画出的箱线图效果和矩阵格式完全一样。选择哪种格式取决于你手头数据的原始形态哪种方便就用哪种。我个人的习惯是如果数据本身是按组别分开收集的就用矩阵格式如果是从一个大的数据库或列表里筛选出来的就用向量分组格式。把数据整理成函数“爱吃”的样子后面的一切都会顺畅很多。3. boxplot()函数核心参数详解掌控每一个细节基础图会画了数据也会导了现在我们来“拆解”这个boxplot函数。它就像一个功能丰富的瑞士军刀有很多参数可以调节从而改变箱线图的外观和行为。不搞清楚这些参数图就永远停留在“默认皮肤”。咱们挑几个最实用、改变最明显的参数来深挖一下。最基本调用boxplot(X)或者boxplot(X, G)我们刚才已经见过了。其中X是数据G是可选的分组变量。‘Labels’参数给箱子命名。这是解决我们之前“X轴标着123”问题的最直接方法。你可以在绘图时直接指定每个箱子的标签figure; boxplot(score_data, Labels, {第一组, 第二组, 第三组}); title(带自定义标签的箱线图);看现在X轴下面显示的就是我们自定义的中文组名了比冰冷的数字直观多了。这个‘Labels’参数接受一个细胞数组cell array里面按顺序存放每个组的标签字符串。‘Colors’参数给箱子上色。默认的蓝色箱子虽然清晰但看多了难免单调或者当你想突出某一组时颜色就派上用场了。你可以为每个箱子指定颜色figure; boxplot(score_data, Labels, {G1, G2, G3}, Colors, rgb); % ‘Colors’ 参数可以是一个字符序列如‘rgb’代表红、绿、蓝 % 也可以是一个RGB三元组矩阵如 [1 0 0; 0 1 0; 0 0 1] 同样代表红、绿、蓝这里我用了‘rgb’MATLAB会按顺序将第一个箱子涂红r第二个涂绿g第三个涂蓝b。颜色一上不同组的区分度瞬间提升在报告或论文里也更吸引眼球。‘Whisker’参数控制“须”的长度。箱线图的“须”到底画到哪里这有个标准。默认情况下MATLAB的boxplot将须线延伸到不超过四分位距IQR Q3 - Q1的1.5倍范围内的最远端数据点超出此范围的点被视为异常值并单独绘制。这个1.5倍系数是 Tukey 提出的一个常用标准。但你可以改figure; subplot(1,2,1); boxplot(score_data, Whisker, 1.5); % 默认值 title(Whisker 1.5 (默认)); subplot(1,2,2); boxplot(score_data, Whisker, 1.0); % 将系数改为1.0 title(Whisker 1.0);把‘Whisker’改小比如设为1.0意味着判定异常值的标准更严格会有更多的数据点被当作异常值标出来箱子的“须”也会相应地缩短。这在你想更敏感地探测离群点时有用。‘Symbol’和‘OutlierSize’参数打扮异常值。默认的异常值标记是红色的‘’号。你可以改变它的符号和大小。figure; boxplot(score_data, Symbol, ko, OutlierSize, 8); % ‘Symbol’ 参数‘k’代表黑色‘o’代表圆圈。所以‘ko’就是黑色圆圈。 % ‘OutlierSize’ 参数控制标记点的大小。现在异常值变成了黑色的圆圈并且更大了一些。如果你觉得异常值干扰视线甚至可以把符号设为空字符串来隐藏它们‘Symbol’, ‘’。‘Positions’参数手动安排箱子的位置。默认箱子是等间距排列在X轴的123...位置上。但有时你可能想让它们靠得更近或更远或者按特定位置排列。figure; custom_positions [1, 2.5, 4]; % 指定三个箱子的X轴位置分别为1 2.5 4 boxplot(score_data, Positions, custom_positions, Labels, {A, B, C}); xlim([0, 5]); % 调整X轴显示范围让图看起来更协调这个功能在你想把多张图并排对比或者需要与另一个坐标轴对齐时特别有用。掌握了这几个核心参数你已经能画出满足大部分需求的、高度定制化的箱线图了。但要让图表真正达到“出版级”质量我们还得在绘图完成后对图形对象进行更精细的“装修”。4. 高级美化与定制打造出版级图表用boxplot函数本身的参数完成了初步设定后我们得到的是一个“裸图”。MATLAB强大的地方在于它创建的这个图形里面每一个元素——箱子、中位线、须线、异常值——都是独立的图形对象我们可以像玩橡皮泥一样在画完之后再去捏它们的形状、颜色、粗细。这就需要用到图形句柄Graphics Handle和get/set函数。听起来有点技术但操作起来就像在图形界面上点选设置一样直观只不过是用代码实现。首先boxplot函数会返回一个句柄这个句柄就像是一组图形对象的“遥控器”。figure; h boxplot(score_data, Labels, {Control, Treatment A, Treatment B}); % h 就是一个包含多个图形对象句柄的矩阵这个h变量很重要。在MATLAB的新版图形系统中R2014b以后h的每一列对应一个箱子一组数据每一行对应箱线图的不同部件。典型的h(1,:)可能对应异常值点h(2,:)对应下须线h(3,:)对应下四分位线盒子底部h(4,:)对应中位线h(5,:)对应上四分位线盒子顶部h(6,:)对应上须线h(7,:)对应箱子本身盒子主体。不同版本可能略有差异最可靠的方法是画完图后在命令行输入h看看它的结构或者用get函数查看某个句柄的属性。如何修改假设我想把所有箱子的中位线加粗并改成红色% 找到中位线对应的句柄行通常是第4行 median_lines findobj(gca, Tag, Median); % 更稳健的方法通过‘Tag’属性查找 % 或者 median_lines h(4, :); 如果确定是第4行 set(median_lines, LineWidth, 3, Color, r); % 设置线宽为3颜色为红这里我用了一个更健壮的方法findobj它在当前坐标轴gca里寻找所有‘Tag’属性为‘Median’的对象。因为boxplot创建的中位线对象都有这个标记这样找不容易出错。然后set函数就用来设置这些对象的属性。再比如我想单独把第二组Treatment A的箱子填充成浅绿色% 找到所有箱子对象 box_handles findobj(gca, Tag, Box); % box_handles 是一个包含三个箱子对象句柄的向量 % 第二个箱子就是第二组 set(box_handles(2), FaceColor, [0.8, 1, 0.8]); % 设置面颜色为浅绿 [R, G, B]添加网格线让读数更精确这是提升图表可读性最有效的方法之一。默认的图没有网格我们手动加上。grid on; % 打开网格 % 默认是同时显示X和Y轴的网格如果只想显示Y轴网格更常见于箱线图 set(gca, XGrid, off, YGrid, on); % 关闭X网格打开Y网格 % 还可以设置网格线样式 set(gca, GridLineStyle, --, GridAlpha, 0.3); % 设置为虚线透明度0.3调整坐标轴和字体让整个图看起来更专业。xlabel(Experimental Group, FontSize, 12, FontWeight, bold); ylabel(Measurement Value, FontSize, 12, FontWeight, bold); title(Comparison of Effects Across Groups, FontSize, 14); set(gca, FontSize, 11); % 设置坐标轴刻度字体大小一个综合的美化示例我把上面这些技巧揉在一起写一个完整的脚本。你可以运行看看效果再根据自己的喜好调整颜色、线宽等参数。这种“先画图后装修”的工作流非常灵活你可以反复调整代码直到得到最满意的视觉效果。% 1. 准备数据 group1 randn(30,1)*2 5; % 均值为5标准差为2的正态分布数据 group2 randn(30,1)*3 7; % 均值为7标准差为3 group3 randn(30,1)*1.5 6; % 均值为6标准差为1.5 data [group1, group2, group3]; % 2. 绘制基础箱线图 figure(Position, [100, 100, 800, 500]); % 设置图形窗口位置和大小 h boxplot(data, ... Labels, {Control, Drug A, Drug B}, ... Whisker, 1.5, ... Symbol, k); % 异常值用黑色‘’ % 3. 高级美化 % 3.1 设置箱子颜色用暖色调 box_colors [0.9 0.6 0.6; 0.6 0.9 0.6; 0.6 0.6 0.9]; % 浅红浅绿浅蓝 box_handles findobj(gca, Tag, Box); for i 1:length(box_handles) set(box_handles(i), Color, box_colors(i,:)*0.7, ... % 边框颜色深一些 LineWidth, 1.5, ... FaceColor, box_colors(i,:)); % 填充颜色浅一些 end % 3.2 加粗中位线并改为深色 median_lines findobj(gca, Tag, Median); set(median_lines, Color, k, LineWidth, 2.5); % 3.3 设置须线样式 whisker_lines findobj(gca, Tag, Whisker); set(whisker_lines, LineStyle, -, Color, [0.3 0.3 0.3], LineWidth, 1.2); % 3.4 添加网格 set(gca, YGrid, on, GridLineStyle, :, GridAlpha, 0.4); % 3.5 设置坐标轴和标题 xlabel(Treatment Group, FontSize, 13, FontWeight, bold); ylabel(Response Level (units), FontSize, 13, FontWeight, bold); title(Box Plot of Treatment Effects with Custom Styling, FontSize, 15, FontWeight, bold); set(gca, FontSize, 11, LineWidth, 1.2); % 坐标轴线宽 % 3.6 调整Y轴范围留出一点空间 ylim([min(data(:))-1, max(data(:))1]);运行这段代码你会得到一张色彩柔和、线条清晰、元素分明、带有网格参考线的箱线图。它已经具备了直接放入学术报告或论文插图中的潜力。这种精细控制的能力是MATLAB可视化强大的体现。多尝试多组合你就能形成自己的图表美化风格。5. 实战技巧与避坑指南纸上得来终觉浅绝知此事要躬行。在真正用箱线图分析数据的过程中我踩过不少坑也总结出一些能让效率翻倍的小技巧。这部分就是我的“实战笔记”希望能帮你少走弯路。技巧一并排比较多个子图。很多时候我们不止有一组数据要画箱线图可能有多组或者想从不同维度对比。这时候用subplot功能非常方便。figure(Position, [100, 100, 1200, 400]); % 宽一点的窗口 % 子图1原始数据 subplot(1, 3, 1); boxplot(original_data, Labels, {Pre}); title(Pre-treatment); ylabel(Value); % 子图2处理后的数据 subplot(1, 3, 2); boxplot(treated_data, Labels, {Post}); title(Post-treatment); ylabel(Value); % 子图3前后对比将两组数据放在一起 subplot(1, 3, 3); combined_data [original_data(:), treated_data(:)]; % 确保都是列向量 boxplot(combined_data, Labels, {Pre, Post}); title(Direct Comparison); ylabel(Value);这样三张关联的图就在一个窗口里整齐排列对比效果一目了然。记得用ylabel只在最左边或中间的图设置一次避免重复让图面更干净。技巧二添加数据点抖动散点。箱线图概括了分布但损失了原始数据点的信息。有时特别是在数据点不多的时候我们希望在箱线图上叠加原始数据点以展示数据的真实分布。这可以通过“抖动散点图Jittered Scatter Plot”来实现。figure; h boxplot(score_data, Labels, {G1, G2, G3}, Widths, 0.7); hold on; % 保持当前图形以便在上面继续画 % 为每组数据添加抖动的散点 group_positions [1, 2, 3]; % 箱子的中心位置 for i 1:size(score_data, 2) x group_positions(i) 0.1 * randn(size(score_data, 1), 1); % 在X位置附近加随机抖动 y score_data(:, i); scatter(x, y, 40, k, filled, MarkerFaceAlpha, 0.6, MarkerEdgeAlpha, 0.6); end hold off;这里randn生成了一个小幅度的高斯随机数让数据点在X方向轻微散开避免完全重叠。‘MarkerFaceAlpha’参数设置了点的填充透明度这样点密集的地方颜色会加深能直观反映数据密度。这个组合图既保留了箱线图的统计概括又展示了原始数据分布非常有说服力。避坑指南异常值判断标准要清楚一定要明白箱线图的“须”和异常值是基于1.5倍IQR的规则画出来的。这个规则是经验性的并非金科玉律。如果你的数据本身就有重尾分布比如金融数据可能会标记出大量“异常值”。此时需要结合业务知识判断是数据真的有问题还是这个规则不适用。你可以通过调整‘Whisker’参数来改变标准。数据方向要对boxplot默认对矩阵的每一列画一个箱线图。如果你的数据是每一行代表一个变量你需要先转置data’再绘图或者使用boxplot(data, ‘Orientation’, ‘horizontal’)画水平箱线图它有时会按行处理数据具体看文档。画图前先用size(data)确认一下矩阵维度。图形句柄版本差异正如前面提到的boxplot返回的句柄结构在MATLAB不同版本间可能有细微变化。依赖于h(4,:)去找中位线在新版本中可能失效。最稳健的方法是使用findobj函数通过‘Tag’属性来查找对象如findobj(gca, ‘Tag’, ‘Box’)。‘Tag’属性是MATLAB给这些图形对象打上的内部标记相对稳定。保存高清图论文或报告需要高清图片。不要用截图用print或saveas函数。% 保存为PNG格式300 dpi print(my_boxplot.png, -dpng, -r300); % 保存为PDF格式矢量图无限放大不模糊 print(my_boxplot.pdf, -dpdf, -bestfit); % 或者直接使用“另存为”窗口提供的选项选择‘矢量格式’如PDF或EPS。矢量图格式PDF EPS是出版物的首选因为它们在任何缩放级别下都保持清晰。把这些技巧和注意事项记在心里下次再遇到画箱线图的任务你就能从容不迫快速画出一张既准确又美观的图表。数据可视化不仅是技术也是艺术多练、多调、多思考你就能成为用图表讲好数据故事的高手。

相关新闻

三极管放大电路设计实战:从静态工作点到失真优化

三极管放大电路设计实战:从静态工作点到失真优化

1. 从零开始:为什么你的三极管放大电路总是不响? 很多刚入门电子设计的朋友,都有过这样的经历:照着电路图,把三极管、电阻、电容一个个焊好,满怀期待地接上电源和信号,结果喇叭一片寂静&#xf…

2026/7/4 16:38:28 阅读更多 →
2026年必用10款项目管理软件|热门工具全测评

2026年必用10款项目管理软件|热门工具全测评

进度猫 • 核心定位:国产轻量甘特图标杆,主打简单高效、进度可视化。 • 核心功能:高性能甘特图引擎(支持1W任务)、多级任务拆分与依赖管理、AI智能创建甘特图、Excel一键导入、多视图切换(甘特/看板/列表&…

2026/7/3 6:57:42 阅读更多 →
iPhone、iPad、Mac三端AirDrop改名全攻略:避免联系人混乱的小技巧

iPhone、iPad、Mac三端AirDrop改名全攻略:避免联系人混乱的小技巧

iPhone、iPad、Mac三端AirDrop改名全攻略:避免联系人混乱的小技巧 你是否遇到过这样的尴尬时刻:在咖啡馆想用AirDrop给邻座的朋友分享一张照片,结果在设备列表里,你的iPhone、iPad和Mac分别显示着“张三的iPhone”、“张三的iPad …

2026/5/17 12:32:49 阅读更多 →

最新新闻

只看 inline 关键字,如何准确判别代码属于 C 还是 C++ 语义?

只看 inline 关键字,如何准确判别代码属于 C 还是 C++ 语义?

一、 源码中 inline 关键字的排查 对项目仓库中所有 .c / .h / .cpp / .hpp 文件中的 inline 关键字进行了全面的审计与排查, 1、 核心结论 结论:确认代码库中所有的 inline 均属于标准 C 的 inline 关键字语义,未发现异常或误用的情况。统计…

2026/7/5 14:26:20 阅读更多 →
告别手动对齐!用UvSquares插件3分钟搞定Blender UV网格重塑

告别手动对齐!用UvSquares插件3分钟搞定Blender UV网格重塑

告别手动对齐!用UvSquares插件3分钟搞定Blender UV网格重塑 【免费下载链接】UvSquares Blender addon for reshaping UV quad selection into a grid. 项目地址: https://gitcode.com/gh_mirrors/uv/UvSquares 你是否曾经在Blender的UV编辑器中花费数小时手…

2026/7/5 14:24:20 阅读更多 →
MySQL 8.4.10安装(二进制)

MySQL 8.4.10安装(二进制)

下载地址MySQL :: Download MySQL Community Server 自己使用远程传输工具上传 可以将包传至家目录,也可以直接wget 创建用户组目录 mkdir -p /mysql/app [rootRockymysql ~]# cd /mysql/app/ [rootRockymysql app]# mv ~/mysql-8.4.10-linux-glibc2.28-x86_6…

2026/7/5 14:24:20 阅读更多 →
第45期 Google三年砸$1000亿建AI基建:Capex全景

第45期 Google三年砸$1000亿建AI基建:Capex全景

# 第45期 Google三年砸$1000亿建AI基建:Capex全景> 作者:小Q | 阿水助理小Q---2026年2月,Alphabet在Q4财报电话会上扔出一枚重磅炸弹:2026年资本支出预计达到$1750亿-$1850亿,较2025年的$914.5亿近乎翻倍。到了6月1…

2026/7/5 14:22:19 阅读更多 →
SAP学习笔记 - MM模块04 - 采购流程基础,采购组织和工厂的常见关系,供应商主数据的3个层次,账户组,字段选择-账户组/采购组织/事务代码,合伙伙伴,MK04履历,MK05冻结,MK06删除

SAP学习笔记 - MM模块04 - 采购流程基础,采购组织和工厂的常见关系,供应商主数据的3个层次,账户组,字段选择-账户组/采购组织/事务代码,合伙伙伴,MK04履历,MK05冻结,MK06删除

目录 1,采购流程基础 1-1,采购流程中的组织层次 a,Client,Purchasing Organization/Group概念 b,采购组织和工厂的常见关系 b-1,Plant-Specific Purchasing Organization b-2,Cross-Plant…

2026/7/5 14:22:19 阅读更多 →
数据产业服务分类(31)——数据产业——数字技术与数据技术

数据产业服务分类(31)——数据产业——数字技术与数据技术

数字技术与数据技术是紧密相关且各有侧重的领域,数字技术为数据处理和应用提供支撑,数据技术则专注于数据全生命周期的管理与价值挖掘,二者协同推动数字经济创新发展。数字技术与数据技术的定义数字技术是指利用电子计算机、互联网、大数据、…

2026/7/5 14:20:19 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻