我有一个要绘制的函数 y=x^2 ,我想用沿 y 方向从黑色到红色的渐变色填充这条曲线所界定的区域。我在网上找到了颜色
x = linspace(-3, 3, 20)';
f = x.^2;
M = f.^2;
N = length(x);
verts = [x(:), f(:)-max(f); x(:) zeros(N,1)];
q = (1:N-1)';
faces = [q, q+1, q+N+1, q+N];
p = patch('Faces', faces, 'Vertices', verts, 'FaceVertexCData', [M(:); M(:)], 'FaceColor', 'interp', 'EdgeColor', 'none')
这段代码向我展示了与曲线绑定到 xaxis 的区域,例如
但我要填充的是白色区域。所以我修改代码如下
x = linspace(-3, 3, 20)';
f = x.^2;
M = f.^2;
N = length(x);
verts = [x(:), f(:)-max(f); x(:) zeros(N,1)];
q = (1:N-1)';
faces = [q, q+1, q+N+1, q+N];
p = patch('Faces', faces, 'Vertices', verts, 'FaceVertexCData', [M(:); M(:)], 'FaceColor', 'interp', 'EdgeColor', 'none')
这给了我类似以下的东西
它填补了正确的区域,但有两个问题:
- 整个图像向负 y 轴移动 9 个单位
- 渐变颜色从左到右填充,但我希望它从下到上(垂直)填充
- 颜色图未定义为黑色到红色(我可以手动更改)