возможна ли многомерная легенда matlab? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть некоторый код для построения графика, в котором я хотел бы построить 10 различных типов точек данных. Я хотел бы использовать 5 цветов и 2 символа.

Обычно, если строка или столбец моей записи в таблице содержит строку, содержащую подстроку «CSC», я хочу изменить используемый маркер. c устанавливается вне этого цикла и контролирует цвет символа.

Как показать легенду, в которой отображается мой список цветов и связанные с ними значения, а также символы с их значениями. В текстовом виде легенда будет, например:

Colours:
red = One noun
green = a second noun
yellow = another noun
Symbols:
+ = isn't in a row or column that has an entry containing "CSC"
o = is in a row or column with an entry containing "CSC

Ниже приведен фрагмент моего кода ...

for k_ind = 1:length(keepers)
            row = T.Row(keepers(k_ind));
            column = T.Col(keepers(k_ind));

            %Does this row or column contain a 'CSC'?
            if(any(contains(string(T{T.Row==row,'cell_cond'}), 'CSC')) || any(contains(string(T{T.Col==column,'cell_cond'}), 'CSC')) )
                symbol = 'o';
                plot(T.total_read_pairs(keepers(k_ind)), max(T.only_matched_arabidopsis(keepers(k_ind)),0.001), symbol, 'color', C(c,:), 'markersize', 12, 'linewidth', 2)
            else
                symbol = '+';
                plot(T.total_read_pairs(keepers(k_ind)), max(T.only_matched_arabidopsis(keepers(k_ind)),0.001), symbol, 'color', C(c,:), 'markersize', 12, 'linewidth', 2)
            end
        end
end

#Draw the legend down here
legend(...)
...