You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB graph绘图中按中心度实现节点平滑渐变着色的方法

实现方法

MATLAB的GraphPlot对象本身支持数值到颜色的批量映射,无需循环调用highlight设置节点颜色,具体实现代码如下:

% 计算度中心度
sdc = centrality(G, 'degree');
% 绘制graph对象图
V = plot(G);
% 绑定节点颜色数据为中心度值,自动完成数值到颜色的映射
V.NodeCData = sdc;
% 设置渐变配色:jet色阶默认对应低数值蓝色、中数值绿黄色、高数值红色,符合需求
colormap(gca, jet(256));
% 可选:添加颜色条显示中心度和颜色的对应关系
colorbar;
% 可选:手动限制颜色映射的数值范围,避免极端值干扰渐变效果,以下示例取5%到95%分位范围
% caxis([prctile(sdc,5), prctile(sdc,95)]);

如果需要更精准控制三色渐变的色值,不想使用自带的jet色阶,可以自定义渐变colormap:

% 自定义蓝(低)-绿黄(中)-红(高)的256阶渐变配色
custom_cmap = interp1([1;128;256], [0 0 1; 0.9 1 0; 1 0 0], linspace(1,256,256));
colormap(gca, custom_cmap);

该方法直接通过NodeCData属性完成数值到颜色的自动映射,渐变效果平滑,运行效率远高于循环设置单个节点颜色。

内容的提问来源于stack exchange,提问作者Autodidactyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:15:03