本次推文介绍散点图(Scatter)标记(Marker)尺寸和颜色渐变的设计过程。
完整代码如下:
% Demo
clc, clear, close all
% -----------------------
% Background Color
set(gcf,'Color', [1 1 1])
% -----------------------
x = -2*pi:0.1:2*pi;
y = sinc(x)+cos(x);
N = length(y);
% Colormaps
color = colormap(cool(N));
% Maker size changing with x axis
markerSize = linspace(1,100,length(x)); % Marker size
% Color changing with y axis
normy = (y - min(y)) ./ (max(y) - min(y));
coloridx = ceil(1+normy*(N-1));
markerColor = color(coloridx,:); % MarkerFaceColor
scatter(x, y, markerSize, markerColor,'o', 'filled');
title('Scatter with Gradient Colors')
xlim([min(x) max(x)])
colormap(color)
caxis([min(y), max(y)])
cticks = linspace(min(y),max(y),5);
colorbar('Ticks',cticks,'FontSize',10)
defaultAxes
以上代码中,用到的坐标修饰函数defaultAxes
代码如下:
function defaultAxes
ax = gca;
hold on, box on, grid on,
ax.XGrid = 'on';
ax.YGrid = 'on';
ax.XMinorTick = 'on';
ax.YMinorTick = 'on';
ax.LineWidth = 1.2;
ax.GridLineStyle = ':';
%ax.FontName = 'Cambria';
%ax.FontSize = 12;
ax.GridAlpha = .5;
end
运行结果如下:
图1 渐变散点图,上:cool 颜色模式;下:jet颜色模式
本示例代码实现了散点图maker尺寸随x轴和颜色随y轴的渐变。
通过改变数据、maker形状和颜色模式,同样也适用其他类型的绘图,仅供MATLAB初学者参考。
“有时候你不努力一下,就不知道什么是绝望。等风来,我们不如追风去”
图文:彭真明