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最常用的三种模式:…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
