Как менять цвет графика в матлаб
Пакет MatLab позволяет отображать графики с разным цветом и типом линий, показывать или скрывать сетку на графике, выполнять подпись осей и графика в целом, создавать легенду и многое другое. В данном параграфе рассмотрим наиболее важные функции, позволяющие делать такие оформления на примере двумерных графиков.
Функция plot() позволяет менять цвет и тип отображаемой линии. Для этого, используются дополнительные параметры, которые записываются следующим образом:
plot(<x>, <y>, <’цвет линии, тип линии, маркер точек’>);
Обратите внимание, что третий параметр записывается в апострофах и имеет обозначения, приведенные в таблицах 3.1-3.3. Маркеры, указанные ниже записываются подряд друг за другом, например,
‘ko’ – на графике отображает черными кружками точки графика,
‘ko-‘ – рисует график черной линией и проставляет точки в виде кружков.
Ниже показаны примеры записи функции plot() с разным набором маркеров.
x = 0:0.1:2*pi;
y = sin(x);
subplot(2,2,1); plot(x,y,’r-‘);
subplot(2,2,2); plot(x,y,’r-‘,x,y,’ko’);
subplot(2,2,3); plot(y,’b—‘);
subplot(2,2,4); plot(y,’b—+’);
Результат работы фрагмента программы приведен на рис. 3.7. Представленный пример показывает, каким образом можно комбинировать маркеры для достижения требуемого результата. А на рис. 3.7 наглядно видно к каким визуальным эффектам приводят разные маркеры, используемые в программе. Следует особо отметить, что в четвертой строчке программы по сути отображаются два графика: первый рисуется красным цветом и непрерывной линией, а второй черными кружками заданных точек графика. Остальные варианты записи маркеров очевидны.
Рис. 3.7. Примеры отображения графиков с разными типами маркеров
Из примеров рис. 3.7 видно, что масштаб графиков по оси Ox несколько больше реальных значений. Дело в том, что система MatLab автоматически масштабирует систему координат для полного представления данных. Однако такая автоматическая настройка не всегда может удовлетворять интересам пользователя. Иногда требуется выделить отдельный фрагмент графика и только его показать целиком. Для этого используется функция axis() языка MatLab, которая имеет следующий синтаксис:
axis( [ xmin, xmax, ymin, ymax ] ),
где название указанных параметров говорят сами за себя.
Воспользуемся данной функцией для отображения графика функции синуса в пределах от 0 до :
x = 0:0.1:2*pi;
y = sin(x);
subplot(1,2,1);
plot(x,y);
axis([0 2*pi -1 1]);
subplot(1,2,2);
plot(x,y);
axis([0 pi 0 1]);
Из результата работы программы (рис. 3.8) видно, что несмотря на то, что функция синуса задана в диапазоне от 0 до , с помощью функции axis() можно отобразить как весь график, так и его фрагмент в пределах от 0 до .
Рис. 3.8. Пример работы функции axis()
В заключении данного параграфа рассмотрим возможности создания подписей графиков, осей и отображения сетки на графике. Для этого используются функции языка MatLab, перечисленные в табл. 3.4.
Рассмотрим работу данных функций в следующем примере:
x = 0:0.1:2*pi;
y = sin(x);
plot(x,y);
axis([0 2*pi -1 1]);
grid on;
title(‘The graphic of sin(x) function’);
xlabel(‘The coordinate of Ox’);
ylabel(‘The coordinate of Oy’);
text(3.05,0.16,’leftarrow sin(x)’);
Из результата работы данной программы, представленного на рис. 3.9, видно каким образом работают функции создания подписей на графике, а также отображение сетки графика.
Таким образом, используя описанный набор функций и параметров, можно достичь желаемого способа оформления графиков в системе MatLab.
Colors in MATLAB plots
for more in-depth explanations and fancier coloring, to name just two sources.
Default Colors in 2D Graphs
The default colors used in MATLAB changed in R2014b version. Here are the colors, in order, and their MATLAB RGB triplet.
| Current color | Old color | ||
|---|---|---|---|
| [0, 0.4470, 0.7410] | [0, 0, 1] | ||
| [0.8500, 0.3250, 0.0980] | [0, 0.5, 0] | ||
| [0.9290, 0.6940, 0.1250] | [1, 0, 0] | ||
| [0.4940, 0.1840, 0.5560] | [0, 0.75, 0.75] | ||
| [0.4660, 0.6740, 0.1880] | [0.75, 0, 0.75] | ||
| [0.3010, 0.7450, 0.9330] | [0.75, 0.75, 0] | ||
| [0.6350, 0.0780, 0.1840] | [0.25, 0.25, 0.25] | ||
Another thing that changed starting in the R2014b version is that the hold on and hold off automatically cycles through the colors. In the past, each new plot command would start with the first color (blue) and you would have to manually change the color. Now it will automatically move to the next color(s). See below for how to manually adjust the colors.

Default Colors in 3D Graphs
If using mesh(x,y,z), to change the look of it you would want to change 'EdgeColor'. Note that the name of this colormap is «parula» while previous to R2014b, it was «jet»

Using Basic Colors in Graphs
The eight basic colors are known by either their short name or long name (RGB triplets are also included).
| Long Name | Short Name | RGB Triplet |
|---|---|---|
| blue | b | [0,0,1] |
| black | k | [0,0,0] |
| red | r | [1,0,0] |
| green | g | [0,1,0] |
| yellow | y | [1,1,0] |
| cyan | c | [0,1,1] |
| magenta | m | [1,0,1] |
| white | w | [1,1,1] |
Example of how to change the color using short names is below. You can easily do the same thing using the long names.

Changing Colors
Many times you want to have more control of what colors are used. For example, I may want some data points drawn in the same color as the curve. Or I have a piece-wise graph that I want to have all the same color. There are several ways to do this. One is to use the default colors and «resetting» the order, which is shown here. Others involve using the RGB triplet (see next section).

As you may see, this could get confusing to keep track of. Thus it may be easier to use the RGB triplets, and even name them ahead of time. This is discussed in the section below.
Using RGB triplets to change colors
One can specify colors using a vector that gives the RGB triple where in MATLAB, each of the three values are numbers from 0 to 1. Usually RGB colors have values from 0 to 255. You can use those numbers and divide the vector by 255 to use within MATLAB. Thus knowing the MATLAB RGB triples for the colors can be useful. From the table above, we can define the default colors to work with them or can put in the RGB triplet (as a vector) directly into the plot command. Both are shown in this example.

For other colors, you can look up their RGB code on many websites such as RGB Color Codes Chart or HTML Color Picker to see the RGB codes (or hex codes, etc.) For example, at these RGB Color websites, you will be given R=255, G=0, B=0 for red. So you can use 1/255[255,0,0] to get the color of red to use as a color in MATLAB.
The official color for Loyola Green is given as RGB:0-104-87, and Loyola Gray is given as RGB:200-200-200 (found on Loyola’s Logos/University Signature page. Here’s how one can use those colors in MATLAB.
Now one can use these colors to specify the color of markers, lines, edges, faces, etc.

Changing colors in 3D Graphs
If using mesh(x,y,z), to change the look of it you can change to a different colormap as discussed in https://www.mathworks.com/help/matlab/ref/colormap.html. This was done above when showing the previous default colormap. Here are some more.
Warning! Once you change the colormap, it will keep that colormap for all subsequent 3D plots within the same figure or MATLAB session until you use close, or open a new figure window.

For mesh and surf, you can change 'EdgeColor' and/or 'FaceColor' to be uniform, rather than using colormaps.
Как менять цвет графика в матлаб
for more in-depth explanations and fancier coloring, to name just two sources.
Default Colors in 2D Graphs
The default colors used in MATLAB changed in R2014b version. Here are the colors, in order, and their MATLAB RGB triplet.
| Current color | Old color | ||
|---|---|---|---|
| [0, 0.4470, 0.7410] | [0, 0, 1] | ||
| [0.8500, 0.3250, 0.0980] | [0, 0.5, 0] | ||
| [0.9290, 0.6940, 0.1250] | [1, 0, 0] | ||
| [0.4940, 0.1840, 0.5560] | [0, 0.75, 0.75] | ||
| [0.4660, 0.6740, 0.1880] | [0.75, 0, 0.75] | ||
| [0.3010, 0.7450, 0.9330] | [0.75, 0.75, 0] | ||
| [0.6350, 0.0780, 0.1840] | [0.25, 0.25, 0.25] | ||
| Long Name | Short Name | RGB Triplet |
|---|---|---|
| blue | b | [0,0,1] |
| black | k | [0,0,0] |
| red | r | [1,0,0] |
| green | g | [0,1,0] |
| yellow | y | [1,1,0] |
| cyan | c | [0,1,1] |
| magenta | m | [1,0,1] |
| white | w | [1,1,1] |
Example of how to change the color using short names is below. You can easily do the same thing using the long names.
Разберем код построчно, рассмотрим какие параметры можно указывать для настройки отображения графиков.
Здесь задаются входные данные для построения графика. Количество значений по оси абсцисс и по оси ординат должно совпадать. По эти данные являются векторами с 36 значениями.
Собственно, функция построения графика, в которую передаются данные и параметры. Помимо очевидных входных данных параметром функции является тип отображаемой линии, закодированный трехсимвольным сочетанием. В данном случае “b” – blue, цвет линии; “o” – вид маркера, которым обозначаются точки графика и “-” – тип линии, в данном случае – сплошная.
Ниже привожу список параметров для настройки отображаемой линии.
Маркер Цвет линии
c голубой
m фиолетовый
y желтый
r красный
g зеленый
b синий
w белый
k черный
Маркер Тип линии
— непрерывная
— — штриховая
: пунктирная
-. штрих-пунктирная
Маркер Тип маркера
. точка
+ знак «плюс»
* знак «звездочка»
о круг
х знак «крест»
Команда, которой включается сетка на графике.
Подписи для графика и соответствующих осей. Здесь “\circ” кодировка символа градуса.
Команда управления осями. В данном случае выставлен параметр “auto” – автоматическая расстановка осей. Здесь-то меня и не устроила работа MATLAB, т.к. автоматически оси не пристыковывались к крайним значениям графика, а «добавляли» лишнее пространство по оси “X”.

С помощью команды “help axis” я нашел еще несколько вариантов параметра для осей, в частности попробовал параметр “tight”, который должен был пристыковывать границы графика к крайним значениям кривой. Однако результат и этого параметра меня не удовлетворил т.к. результат выглядел следующим образом:

График выглядит «зажатым», к тому же «теряются» части кривой находящиеся между максимальными значениями.
Для получения наглядного результата пришлось настроить ось “X” отдельно с помощью следующих команд:
Последняя функция задает граничные значения отдельно для оси “X”, что позволило мне ограничить график максимальными значениями по данной оси.
И последняя команда:
Позволила настроить подписи и шаг для оси “X”. Функция “set” является достаточно общей, ее работа зависит от передаваемых параметров. В данном случае “gca” – означает, что параметры будут устанавливаться для сетки графика, “ XTick ” – означает, что будет управляться подпись оси “X”, а параметр “0:45:360” – задает минимальное значение, шаг и максимальное значение.
В результате получился достаточно наглядный график кривой девиации, по сравнению формы которого с формой графика полученного студентом можно было быстро оценить правильность выполнения работы. Так же, благодаря загрузке данных из файла по всем вариантам, с дальнейшим выбором последнего, изменять приходилось только номер варианта, чтобы получить результат.

Надеюсь, что эта статья будет полезной не только для начинающих MATLAB, но и для опытных пользователей.
В окончании хотел бы отметить полезность команды “help” – она не только позволяет получить необходимую информацию по функции или команде из командной строки, но и сделать это значительно быстрее, чем через поиск в справке MATLAB.