Chcę odtworzyć poniższy rysunek w programie MATLAB:Elipsa wokół danych w MATLAB
Istnieją dwa rodzaje punktów ze współrzędnymi X i Y. Chciałbym otoczyć każdą klasę elipsą z jednym parametrem odchylenia standardowego, który określa, jak daleko posunie się elipsa wzdłuż osi.
Rysunek został utworzony przy użyciu innego oprogramowania i nie do końca rozumiem, w jaki sposób oblicza się elipsę.
Oto dane, których używam dla tej liczby. Pierwsza kolumna to klasa, druga - X, trzecia - Y. Mogę użyć gscatter
, aby narysować same punkty.
A = [
0 0.89287 1.54987
0 0.69933 1.81970
0 0.84022 1.28598
0 0.79523 1.16012
0 0.61266 1.12835
0 0.39950 0.37942
0 0.54807 1.66173
0 0.50882 1.43175
0 0.68840 1.58589
0 0.59572 1.29311
1 1.00787 1.09905
1 1.23724 0.98834
1 1.02175 0.67245
1 0.88458 0.36003
1 0.66582 1.22097
1 1.24408 0.59735
1 1.03421 0.88595
1 1.66279 0.84183
];
gscatter(A(:,2),A(:,3),A(:,1))
FYI, here jest SO pytanie, w jaki sposób narysować elipsę. Musimy więc znać wszystkie parametry, aby je narysować.
Update:
że zgadzają się, że środek może być obliczona jako środek X i Y. Prawdopodobnie muszę użyć głównej analizy komponentów (PRINCOMP
) dla każdej klasy, aby określić kąt i kształt. Wciąż myśli ...
Nawet jeśli nie wiem jak elipsa w oryginalnym rysunku jest obliczana, można prawdopodobnie wyjaśnić nieco więcej, co to ma znaczyć? To nie tylko otaczanie punktów, jak na przykład w przypadku punktów szarości, nie wszystkie punkty są zawarte w elipsie. Jeśli nic nie wiesz, sugerowałbym, aby punkt centralny punktów stanowił środek elipsy. Drugi moment obszaru może dać kierunek większej osi. – groovingandi
@groovingandi: Zasadniczo oznacza to, że jeśli elipsa zostanie narysowana z odchyleniem standardowym 3, przy normalnym rozkładzie będzie zawierać około 99% punktów danych. Elipsy na figurze zostały wygenerowane przy STD = 2. – yuk