MATLAB|科研绘图|山脊图
效果图


山脊图介绍
山脊图(Ridge Plot),也被称为Joy Plot,是一种用于可视化数据分布的图表,特别是用于显示多个组的分布情况。在这种图表中,每个组的数据分布都通过平滑的密度曲线来表示,这些曲线沿着垂直轴堆叠,形成类似山脊的视觉效果。山脊图是核密度估计(KDE)的一个应用,它提供了比传统的条形图或直方图更平滑的数据分布视图。
用途:山脊图主要用于展示和比较不同组或类别内数据的分布情况。它特别适合于以下情境:
- 比较多个分布:当需要展示和比较多组数据的分布形状时,山脊图能够直观地展示出分布之间的差异。
- 展现趋势变化:在时间序列数据中,山脊图可以用来展示数据随时间的变化趋势。
- 优化空间利用:通过堆叠的方式,山脊图能在有限的空间内展示大量的分布信息。
缺点:
- 可读性:对于不熟悉这种图表的观众来说,山脊图可能难以理解和解读。
- 叠加问题:当曲线重叠较多时,可能会导致图表的某些部分难以区分。
- 数据量限制:对于数据量非常大的数据集,山脊图可能不那么有效,因为过多的曲线会使图表变得杂乱。
应用场景:
- 时间序列分析:在金融、经济、气象等领域,用于展示某个变量随时间的变化趋势。
- 社会科学:比如在选举数据分析中,展示不同候选人或党派在不同地区或人群中的支持率分布。
- 生物医学:用于展示不同实验组或治疗方法下的生物统计数据分布。
绘图教程
线条山脊图
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLable= {'January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 'December'};
colors=makeColorMap([0,0,0;1,1,1],12);
figure('Position',[476 246 511 620])
p=0.15;
yTick=(1:size(data, 2))*p;
for i = 1:size(data, 2)[f, x] = ksdensity(data(:, i));f=f+i*p;pHandle=plot(x, f, 'LineWidth', 1.5,'color',colors(i,:));hold on;yline(yTick(i),'-.','LineWidth',1,'Color',pHandle.Color,'HandleVisibility','off')
end
grid off;box off;
legend(lgLable,'box','on','Color',[1,1,1]*0.95,'EdgeColor','none');
set(gca, 'YTick',yTick , 'YTickLabel',lgLable,'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname','Times new Roman','color',[1,1,1]*0.9);
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
hold off;

填充山脊图
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLable= {'January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 'December'};
% colors=makeColorMap(winter,size(data, 2));
colors=makeColorMap(jet,size(data, 2));
figure('Position',[476 246 511 620])
p =0.2;
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;pHandle = plot(x, fShifted,'color',colors(i,:),'LineWidth', 1.5,'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'Color', colors(i,:),'HandleVisibility', 'off')Xfill = [x, fliplr(x)];Yfill = [fShifted, ones(1, length(x)) * i * p];fill(Xfill, Yfill, pHandle.Color, 'EdgeColor', 'none', 'FaceAlpha', 0.3);
end
yTick = (1:size(data, 2)) * p;
ax = gca;
hold off;
set(ax, 'YTick', yTick, ...'YTickLabel', lgLable, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname','Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');

3D填充山脊图
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel= {'January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 'December'};
p = 0.2;
xTick=(1:size(data, 2))*p;
figure('Position',[476 246 511 620])
hold on;
colors=makeColorMap(hsv,size(data, 2));
legendHandles = zeros(size(data, 2), 1);
for i = 1:size(data, 2)[f, y] = ksdensity(data(:, i));xShifted = i * p;plot3(xShifted * ones(size(f)), y, f, 'LineWidth', 1.5, 'Color', colors(i,:), 'HandleVisibility', 'off');Yfill = [y, fliplr(y)];Xfill = [xShifted * ones(1, length(y)), xShifted * ones(1, length(y))];Zfill = [f, zeros(size(f))];legendHandles(i) = fill3(Xfill, Yfill, Zfill, colors(i,:), 'EdgeColor', 'none', 'FaceAlpha', 0.3);
end
grid off;
box on;
legend(lgLabel,'box','on','Color',[1,1,1]*0.95,'EdgeColor','none','FontName','Times New Roman','location','best');
set(gca, 'XTick',xTick, 'XTickLabel',lgLabel,'FontName','Times New Roman','linewidth',1)
xlabel('XXXX-Value');
ylabel('YYYY-Value');
zlabel('ZZZ-Value');
title('Ridge Plot');
view([-83.4000 71.6830])
hold off;

不同核山脊图、添加边际散点密度
data = randn(100,3)+[ 20 24 28];
colors=makeColorMap(jet,size(data, 2));
figure('Position',[476 246 511 620])
p=0;
hold on;
yTick=(1:size(data, 2))*p;
lineLength = 0.02; % 竖线的长度
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;pHandle = plot(x, fShifted, 'color', colors(i,:), 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'Color', colors(i,:), 'HandleVisibility', 'off');Xfill = [x, fliplr(x)];Yfill = [fShifted, ones(1, length(x)) * i * p];fill(Xfill, Yfill, pHandle.Color, 'EdgeColor', 'none', 'FaceAlpha', 0.3);for j = 1:length(data(:, i))line([data(j, i), data(j, i)], [i * p, i * p + lineLength], 'Color', pHandle.Color, 'LineWidth', 1);end
end
grid off;box off;
ax=gca;
set(ax,'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname','Times new Roman','color',[1,1,1]*0.9);
ax.YLim=[0,1];
ax.XLim=[15,32];
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
hold off;
横坐标方向、全局渐变的散点图
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel={'January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 'October', 'November', 'December'};
p = 0.2;
numColors = 256;
% 创建一个从紫色到红色再到黄色的颜色映射
colorMap =makeColorMap([0.1490 0.0353 0.5608;0.7305 0.2500 0.4922;0.9569 0.9490 0.1765],numColors);
% 计算全局的x轴范围
xMin = min(data, [], 'all');
xMax = max(data, [], 'all');
figure('Position',[476 246 511 620])
hold on;
for i = size(data, 2):-1:1[f(i,:), x] = ksdensity(data(:, i), 'Kernel', 'triangle');fShifted = f(i,:) + i * p; % 偏移每个分布plot(x, fShifted, 'LineWidth', 1.5, 'color', 'k', 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'HandleVisibility', 'off');for j = 1:length(x)-1Xfill = [x(j), x(j+1), x(j+1), x(j)];Yfill = [i * p, i * p, fShifted(j+1), fShifted(j)];% 计算当前点的颜色比例colorRatio = (x(j) - xMin) / (xMax - xMin);colorIdx = min(numColors, max(1, round(colorRatio * (numColors - 1)) + 1));fill(Xfill, Yfill, colorMap(colorIdx, :), 'EdgeColor', 'none', 'FaceAlpha', 0.9);end
end
% 设置轴标签和标题
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, ...'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname','Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
% 设置颜色条
colormap(colorMap);
cBar = colorbar;
cBar.TickDirection = 'out';
cBar.LineWidth = 1;
cBar.TickLength = 0.02;
cBar.FontName = 'Times new Roman';
caxis([xMin,xMax]);
hold off;

横坐标方向、单核渐变图
data = randn(100,12) + [20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
numColors = 256; % 颜色数量
colors = jet(numColors); % 使用jet颜色映射
figure('Position',[476 246 511 620])
p = 0.2;
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;plot(x, fShifted, 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'HandleVisibility', 'off');colorGradient = linspace(1, numColors, length(x));for j = 1:length(x)-1Xfill = [x(j), x(j+1), x(j+1), x(j)];Yfill = [i * p, i * p, fShifted(j+1), fShifted(j)];fill(Xfill, Yfill, colors(round(colorGradient(j)), :), 'EdgeColor', 'none', 'FaceAlpha', 0.7);end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, 'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
colormap(colors);
cBar = colorbar;
cBar.TickDirection = 'out';
cBar.LineWidth = 1;
cBar.TickLength = 0.02;
cBar.FontName = 'Times new Roman';
hold off;

每个山脊图设置不同颜色,且添加边际散点图
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLable = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
figure('Position', [476 246 511 620])
p = 0.3;
lineLength = 0.04; % 竖线的长度
colors=makeColorMap(hsv,size(data, 2));
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;pHandle = plot(x, fShifted, 'color', colors(i,:), 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'Color', colors(i,:), 'HandleVisibility', 'off');Xfill = [x, fliplr(x)];Yfill = [fShifted, ones(1, length(x)) * i * p];fill(Xfill, Yfill, pHandle.Color, 'EdgeColor', 'none', 'FaceAlpha', 0.3);for j = 1:length(data(:, i))line([data(j, i), data(j, i)], [i * p, i * p + lineLength], 'Color', 'k', 'LineWidth', 1);end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, ...'YTickLabel', lgLable, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');

每个山脊图设置不同颜色单核横向颜色渐变
data = randn(100,12)+[ 20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel = {'January', 'February', 'March', 'April', 'May', 'June', ...'July', 'August', 'September', 'October', 'November', 'December'};
p = 0.2;
numColors = 256;
% 创建12个不同的颜色映射,每个月一个
colorMaps = cell(1, 12);
colorList={parula,turbo,hsv,hot,cool,spring,summer,autumn,winter,gray,bone,copper,pink,jet,lines,colorcube,prism,flag};
for i = 1:12colorMaps{i} = makeColorMap(colorList{i}, numColors);
end
% 计算全局的x轴范围
xMin = min(data, [], 'all');
xMax = max(data, [], 'all');
figure('Position', [476 246 511 620])
hold on;
for i = size(data, 2):-1:1[f(i,:), x] = ksdensity(data(:, i), 'Kernel', 'triangle');fShifted = f(i,:) + i * p; % 偏移每个分布plot(x, fShifted, 'LineWidth', 1.5, 'color', 'k', 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'HandleVisibility', 'off');currentColorMap = colorMaps{i};for j = 1:length(x)-1Xfill = [x(j), x(j+1), x(j+1), x(j)];Yfill = [i * p, i * p, fShifted(j+1), fShifted(j)];colorRatio = (x(j) - xMin) / (xMax - xMin);colorIdx = min(numColors, max(1, round(colorRatio * (numColors - 1)) + 1));fill(Xfill, Yfill, currentColorMap(colorIdx, :), 'EdgeColor', 'none', 'FaceAlpha', 0.9);end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, ...'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
hold off;

山脊图的 Y值映射颜色变化
data = randn(100,12) + [20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
numColors = 100; % 颜色数量
colors =makeColorMap(jet, numColors);
figure('Position',[476 246 511 620])
p = 0.2;
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;plot(x, fShifted, 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'HandleVisibility', 'off');% 计算整个分布的最小和最大纵坐标minY = min(fShifted);maxY = max(fShifted);for j = 1:length(x)-1Xfill = [x(j), x(j+1), x(j+1), x(j)];Yfill = [i * p, i * p, fShifted(j+1), fShifted(j)];avgY = mean(Yfill(3:4)); colorIdx = round(((avgY - minY) / (maxY - minY)) * (numColors - 1)) + 1;fill(Xfill, Yfill, colors(colorIdx, :), 'EdgeColor', 'none', 'FaceAlpha', 0.6);end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, 'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
colormap(colors);
cBar = colorbar;
cBar.TickDirection = 'out';
cBar.LineWidth = 1;
cBar.TickLength = 0.02;
cBar.FontName = 'Times new Roman';
hold off;

四分位点
data = randn(100,12) + [20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
colors = makeColorMap(jet, size(data, 2));
figure('Position', [476 246 511 620])
p = 0.2;
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;pHandle = plot(x, fShifted, 'color', colors(i,:), 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'Color', colors(i,:), 'HandleVisibility', 'off')Xfill = [x, fliplr(x)];Yfill = [fShifted, ones(1, length(x)) * i * p];fill(Xfill, Yfill, pHandle.Color, 'EdgeColor', 'none', 'FaceAlpha', 0.3);% 计算并标记四分位点quartiles = quantile(data(:, i), [0.25 0.50 0.75]);for q = quartiles[~, idx] = min(abs(x-q));plot(q, fShifted(idx), 'o', 'MarkerFaceColor', pHandle.Color, 'MarkerEdgeColor', 'k');end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, ...'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
hold off;

data = randn(100,12) + [20 22 24 26 28 31 30 28 26 24 22 20];
lgLabel = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'};
colors = makeColorMap(jet, size(data, 2));
figure('Position', [476 246 511 620])
p = 0.2;
hold on;
for i = size(data, 2):-1:1[f, x] = ksdensity(data(:, i));fShifted = f + i * p;pHandle = plot(x, fShifted, 'color', colors(i,:), 'LineWidth', 1.5, 'HandleVisibility', 'off');yline(i * p, '-.', 'LineWidth', 1, 'Color', colors(i,:), 'HandleVisibility', 'off');Xfill = [x, fliplr(x)];Yfill = [fShifted, ones(1, length(x)) * i * p];fill(Xfill, Yfill, pHandle.Color, 'EdgeColor', 'none', 'FaceAlpha', 0.3);% 计算并标记四分位点,并绘制竖线quartiles = quantile(data(:, i), [0.25 0.50 0.75]);for q = quartiles[~, idx] = min(abs(x-q));plot(q, fShifted(idx), 'o', 'MarkerFaceColor', pHandle.Color, 'MarkerEdgeColor', 'k');line([q q], [fShifted(idx) i * p], 'Color', pHandle.Color, 'LineStyle', '-.','LineWidth', 1);end
end
yTick = (1:size(data, 2)) * p;
set(gca, 'YTick', yTick, ...'YTickLabel', lgLabel, ...'LineWidth', 1.5, 'XMinorTick', 'on', 'TickDir', 'out', ...'fontname', 'Times new Roman');
xlabel('XXXX-Value');
ylabel('YYYY-Value');
title('Ridge Plot');
hold off;

其中makeColorMap函数代码之前「一张图搞定绘图配色问题」有详细介绍。
相关文章:
MATLAB|科研绘图|山脊图
效果图 山脊图介绍 山脊图(Ridge Plot),也被称为Joy Plot,是一种用于可视化数据分布的图表,特别是用于显示多个组的分布情况。在这种图表中,每个组的数据分布都通过平滑的密度曲线来表示,这些曲…...
Python编程爬虫代码
这是一个基本的爬虫程序的示例,按照你的需求进行了修改: typescript import * as request from request; import * as cheerio from cheerio; const proxyHost ; const proxyPort ; // 创建一个request实例,使用 const requestWithProxy…...
工作汇报怎么写?建议收藏
整体思路与模块: 背景/事件 成果展示 推动落实的方法论 收获与成长 存在的不足及改进措施 下一步工作安排 支持(选) 一、背景/事件 对于区分“功能性总结”和“应付性总结”,在背景/事件方面有一个关键点 是报告是否具有…...
动作捕捉系统通过VRPN与ROS系统通信
NOKOV度量动作捕捉系统支持通过VRPN与机器人操作系统ROS通信,进行动作捕捉数据的传输。 一、加载数据 打开形影动捕软件,加载一段后处理数据。 这里选择一段小车飞机的同步数据。在这段数据里面,场景下包含两个刚体,分别是小车和…...
Java Stream 的常用API
Java Stream 的常用API 遍历(forEach) package com.liudashuai;import java.util.ArrayList; import java.util.List;public class Test {public static void main(String[] args) {List<Person> userList new ArrayList<>();userList.ad…...
代驾预约小程序系统源码 :提起预约,避免排队 带完整搭建教程
大家好啊,又到罗峰来给大家分享好用的源码系统的时间了。今天要给大家分享的第一款代驾预约小程序源码系统。传统的代驾服务中,用户往往需要在酒后代驾、长途驾驶等场景下,面对排队等待代驾司机空闲时间的繁琐过程。这不仅浪费了用户的时间和…...
es 报错 Data too large 触发断路器
文章目录 [toc]事出有因解决思路效果展示关于重启课外扩展 事出有因 报错原因是 es 在 full GC 之前触发了默认的断路器,导致报错 [parent] Data too large,相似的报错内容如下: Caused by: org.elasticsearch.common.breaker.CircuitBreakin…...
idea报[Ubuntu] File watcher failed repeatedly and has been disabled
1.安装File Watchers 2.restart idea解决...
phpstudy 开启目录浏览功能
(1)在该目录下: (2)选择对应网站的配置文件; (3)修改: # Options FollowSymLinks ExecCGI Options Indexes FollowSymLinks ExecCGI...
【前端开发】图例宽度根据数值自适应
前端开发 先看结果图 图例的宽度会随数值的改变而变化。 HTML部分 <!-- 数值部分 --> <ul class"tuli" ref"num"><listyle"margin-top: 5px;padding: 0 5px;text-align: center;"v-for"item of itemArr":key"i…...
AOMedia发布免版税沉浸音频规范IAMF
11月10日,开放媒体联盟(AOMedia)发布了旗下首个沉浸式音频规范IAMF(https://aomediacodec.github.io/iamf/),IAMF是一种编解码器无关的容器规范,可以携带回放时间渲染算法和音频混音的信息&…...
Linux C 进程编程
进程编程 进程介绍进程的定义进程和线程以及程序的区别进程块PCB进程的状态相关指令 进程调度算法先来先服务调度算法 FCFS短作业(进程)优先调度算法 SJF优先权调度算法 FPF优先权调度算法的类型非抢占式优先权算法抢占式优先权算法 优先权类型静态优先权动态优先权 高响应比优…...
Spring Boot (三)
1、热部署 热部署可以替我们节省大把花在重启项目本身上的时间。热部署原理上,一个springboot项目在运行时实际上是分两个过程进行的,根据加载的东西不同,划分成base类加载器与restart类加载器。 base类加载器:用来加载jar包中的类…...
第五章:抽象类
系列文章目录 文章目录 系列文章目录前言一、抽象类二、模板设计模式总结 前言 当我们想让子类来实现方法时,我们需要抽象类与抽象方法。 一、抽象类 当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法…...
NSSCTF web刷题记录5
文章目录 [HZNUCTF 2023 preliminary]ezlogin[MoeCTF 2021]地狱通讯[NSSRound#7 Team]0o0[ISITDTU 2019]EasyPHP[极客大挑战 2020]greatphp[安洵杯 2020]Validator[GKCTF 2020]ez三剑客-ezweb [HZNUCTF 2023 preliminary]ezlogin 考点:时间盲注 打开题目,…...
Spark SQL 每年的1月1日算当年的第一个自然周, 给出日期,计算是本年的第几周
一、问题 按每年的1月1日算当年的第一个自然周 (遇到跨年也不管,如果1月1日是周三,那么到1月5号(周日)算是本年的第一个自然周, 如果按周一是一周的第一天) 计算是本年的第几周,那么 spark sql 如何写 ? 二、分析 …...
WebSocket Day04 : 消息推送
前言 随着Web应用程序的不断发展,实时性和交互性成为了用户体验中至关重要的一部分。传统的HTTP协议在处理实时数据传输方面存在一些局限性,而WebSocket作为一种全双工通信协议,为实现实时、高效的消息推送提供了全新的解决方案。 在Web开发…...
【Hadoop】MapReduce详解
🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁…...
ctf之流量分析学习
链接:https://pan.baidu.com/s/1e3ZcfioIOmebbUs-xGRnUA?pwd9jmc 提取码:9jmc 前几道比较简单,是经常见、常考到的类型 1.pcap——zip里 流量分析里有压缩包 查字符串或者正则表达式,在包的最底层找到flag的相关内容 我们追踪…...
Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作
vim简介、配置方案、常用模式的基本操作 本章思维导图: 注:本章思维导图对应的xmind和.png文件都已同步导入至资源 1. vim简介 vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器 本篇我们介绍vim最常用的三种模式:…...
新手福音:在快马平台用自然语言生成你的第一个powershell脚本
今天想和大家分享一个特别适合 PowerShell 新手的入门实践。作为一个从零开始学习 PowerShell 的菜鸟,我发现用自然语言描述需求就能生成可运行的脚本,这个体验真的太友好了。 变量定义与数据结构 刚开始学习时,最基础的就是理解变量和数据结…...
QT 生成动态链接库
QT 生成动态链接库 前言 一、创建新的动态库项目(Qt Creator) 1 新建项目 二 、 自动生成的文件结构 1 项目会包含一个导出宏定义头文件,例如 Test001_global.h: 2 在需要导出的类或函数前加上 TEST001_EXPORT(我自己测试不加也行): 3 crtl+B 或者点击左下角锤子 进行编译…...
BAR和BA
BAR 是请求方发出的“问题”:“我刚才发的那批数据包,你收到了哪几个?”BA 是接收方回复的“答案”:“我收到了第1、3、4、5个包,第2个没收到。”BAR - Block Ack Request(块确认请求) 角色与发…...
【原创改进代码】考虑电动汽车移动储能特性的多区域电网功率波动平抑优化调控附python代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子…...
探索偏心轮飞剪的 Codesys 程序奥秘:基于偏心轮加滑块机构
偏心轮 飞剪 电子凸轮 codesys程序源码 适用于偏心轮加滑块机构 在自动化控制领域,偏心轮飞剪系统凭借其独特的运动特性和高效的切割能力,在众多生产场景中发挥着关键作用。今天咱们就深入探讨基于偏心轮加滑块机构的偏心轮飞剪的 Codesys 程序源码&…...
新手入门:在快马平台动手实现你的第一个ui-ux-pro-max设计页面
作为一个刚接触前端设计的新手,最近在InsCode(快马)平台尝试做了一个UI-UX-Pro-Max级别的登录注册页面,整个过程意外地顺利。这里记录下我的实践过程,希望能帮到同样想入门的朋友。 从零搭建页面框架 先用HTML搭建基础结构,包含表…...
感知损失(Perceptual Loss)在图像风格迁移中的关键作用与实现
1. 为什么感知损失能让AI画出更像艺术家的画? 第一次用传统MSE损失做风格迁移时,我盯着生成的"梵高星空"直挠头——颜色位置都对,但怎么看都像小学生涂鸦。直到尝试了感知损失,画面突然有了笔触的韵律感。这背后的秘密…...
LCC-LCC无线充电恒流/恒压闭环移相控制仿真 Simulink仿真模型,LCC-LCC谐振...
LCC-LCC无线充电恒流/恒压闭环移相控制仿真 Simulink仿真模型,LCC-LCC谐振补偿拓扑,闭环移相控制 1. 输入直流电压350V,负载为切换电阻,分别为50-60-70Ω,最大功率3.4kW,最大效率为93.6% 2. 闭环PI控制&…...
102. 在控制平面主机名更改后恢复 Rancher 配置的 RKE2 集群
Environment 环境 Rancher provisioned RKE2 downstream cluster control plane node hostname changed, without removing the node from the cluster. Rancher 配置了 RKE2 下游集群控制平面节点的主机名更改,但未将该节点从集群中移除。 Procedure 程序It is …...
群晖更换RAID类型无需重建服务,保持Volume磁盘盘符不变
我的环境:DSM型号:DS3617xs(黑群晖)系统版本:DSM 7.1.1-42962 Update 6硬盘数据库更新时间:2026-01-23更改前磁盘序号(btrfs):Raid1(volume1)&…...
