Can Matlab handle this color scheme?

1 次查看(过去 30 天)
According to the data that I attached I plotted and colored the plot manually in order that it looks funky like this:
Question is: Can Matlab copy this colordesign? I know Right, this isn't a GraphicDesignProgram, just want to check its limits.
  7 个评论
Adam Danz
Adam Danz 2021-1-19
If your data are finely sampled, you could use scatter() instead of a line.
Rik
Rik 2021-1-19
My first thought was to adapt something from the surf/patch family of functions.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2021-1-19

更多回答(1 个)

Image Analyst
Image Analyst 2021-1-19
See my answer here, where I vary the line color for two cases: along the y axis (which you want), and along the x axis.
clear all;
close all;
clc;
format long g;
format compact;
fontSize = 15;
fprintf('Beginning to run %s.m ...\n', mfilename);
x = linspace(0, 2*pi, 1000);
period = pi;
y = sin(2*pi*x/period);
numMarkers = numel(y);
markerColors = jet(numMarkers);
subplot(2, 1, 1);
for k = 1 : length(x)
plot(x(k), y(k), '.', 'Color', markerColors(k, :), 'MarkerSize', 30);
hold on;
end
grid on;
caption = sprintf('Line Color Varies Along X. Composed of %d Differently Colored Markers', numMarkers);
title(caption, 'FontSize', 20);
xlabel('x', 'FontSize', 20);
ylabel('y', 'FontSize', 20);
xlim([min(x), max(x)]);
% Maximize the figure window.
g = gcf;
g.WindowState = 'maximized';
% Do it again but instead of changing color as we move along the x axis,
% change it as we go along the y axis. So the marker color depends on the y value.
subplot(2, 1, 2);
numMarkers = numel(unique(y));
markerColors = jet(numMarkers);
miny = min(y);
maxy = max(y);
% Get indexes into the color map for each y value.
colorMapRows = round(rescale((y - miny) / (maxy - miny), 1, numMarkers));
for k = 1 : length(x)
thisMarkerColor = markerColors(colorMapRows(k), :);
plot(x(k), y(k), '.', 'Color', thisMarkerColor, 'MarkerSize', 30);
hold on;
end
grid on;
caption = sprintf('Line Color Varies With Y Value. Composed of %d Differently Colored Markers', numMarkers);
title(caption, 'FontSize', 20);
xlabel('x', 'FontSize', 20);
ylabel('y', 'FontSize', 20);
xlim([min(x), max(x)]);
fprintf('Done running %s.m.\n', mfilename);
  1 个评论
dpb
dpb 2021-1-19
You can do something similar with scatter and the color vector.
It does seem like given the advances in computing and graphics/visualization TMW would have built a better mousetrap by now than having to resort to such workarounds at the user level.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Formatting and Annotation 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by