How to assign different colors for data in different rows from a dataframe?
3 ビュー (過去 30 日間)
古いコメントを表示
For instance, here's a dataframe
T=[label X Y
A 1 2
A 4 5
B 3 5
B 9 10]
I want to make a scatter plot with Y against X, but assign different colors and shapes based on their labels (i.e, A and B). How can I accomplish that? Many thanks!
I can think of using T{1:2,2} to extract different rows, but the real data contain many rows and more than two labels, so it's difficult to count row by row
0 件のコメント
採用された回答
Image Analyst
2022 年 1 月 9 日
Maybe something like untested
% letters = T{:, 1};
% x = T{:, 2};
% y = T{:, 3};
letters = {'A'; 'A'; 'B'; 'B'}
numUniqueLetters = length(unique(letters))
x = [1;4;3;9]
y = [2; 5; 5; 10];
colors = jet(numUniqueLetters)
g = findgroups(letters)
markerColors = colors(g, :)
scatter(x, y, 300, markerColors, 'filled')
grid on;
8 件のコメント
Image Analyst
2022 年 2 月 27 日
You could call scatter several times with a different color each time, or you could use gscatter().
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Scatter Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!