#matlab #plot #bar-chart
#matlab #график #гистограмма
Вопрос:
Это моя матрица
n =
46.4000 51.8000
44.8000 44.9000
67.2000 85.0000
54.4000 60.3000
43.2000 57.0000
51.2000 68.0000
75.2000 76.0000
44.8000 51.3000
67.2000 72.2000
70.4000 71.2000
Если я построю его как bar (n, ‘grouped’), он покажет
Я хочу изменить цвета по умолчанию вместо синего красного, я хочу зеленый и желтый
Я пробовал так bar(n, ‘grouped’,’g’,’y’) Но он показывает
может ли кто-нибудь мне помочь?
Ответ №1:
Вы можете использовать 'FaceColor'
свойство дескрипторов для объектов:
n=[46.4000 51.8000
44.8000 44.9000
67.2000 85.0000
54.4000 60.3000
43.2000 57.0000
51.2000 68.0000
75.2000 76.0000
44.8000 51.3000
67.2000 72.2000
70.4000 71.2000];
bar_handle = bar(n,'grouped');
set(bar_handle(1),'FaceColor',[0,1,0])
set(bar_handle(2),'FaceColor',[1,1,0])
В документации объясняется, как установить цвета здесь.
Ответ №2:
Для matlab2014b и выше
Использование set
, похоже, больше не работает с matlab2014b и выдает сообщение ( Error using subsindex: Function 'subsindex' is not defined for values of class 'matlab.graphics.chart.primitive.Bar'.
).
Попробуйте сделать это непосредственно с помощью дескриптора:
n=[46.4000 51.8000
44.8000 44.9000
67.2000 85.0000
54.4000 60.3000
43.2000 57.0000
51.2000 68.0000
75.2000 76.0000
44.8000 51.3000
67.2000 72.2000
70.4000 71.2000];
bar_handle = bar(n,'grouped');
bar_handle(1).FaceColor = 'r'
bar_handle(2).FaceColor = 'b'
Комментарии:
1. Это поведение отражает версии от R2014b и выше. Вероятно, вам следует сделать небольшую заметку, в которой говорится об этом, чтобы не путать людей, у которых есть версии от R2014a или меньше, поскольку эти версии все еще требуют использования
set
для изменения свойств графика.2. С моим R2015b необходимо было добавить
bar_handle(1).EdgeColor = 'r'; bar_handle(2).EdgeColor = 'b'
после FaceColor.