Mam zestaw danych z etykietami, które chciałbym drukować z punktami w kolorze zgodnie z ich etykietą. Czy istnieje prosty sposób, aby uzyskać bieżący numer linii wewnątrz wykresu, aby móc określić, do której kategorii należy ten punkt?Kolorowanie wykresu w Mathematica według etykiet
Zrozumiałem, że x,y,z
są współrzędnymi wykreślonych danych, ale nie pomaga to dla etykiet zewnętrznych.
To jest dość brzydkie i działa tylko na posortowany zbiór danych z regularną dystrybucją.
data = Import["http://ftp.ics.uci.edu/pub/machine-learning-databases/iris/iris.data"];
data = Drop[data, -1]; (*there one extra line at the end*)
inData = data[[All, 1 ;; 4]];
labels = data[[All, 5]];
ListPlot3D[inData,
ColorFunction ->
Function[{x, y, z},
If[y < 0.33, RGBColor[1, 1, 0.],
If[y < 0.66, RGBColor[1, 0, 0.], RGBColor[1, 0, 1]]
]
]
]
Oczekiwany wynik:
Gdzie są etykiety w swoim zbiorze? Proszę opisać struktury –
etykiety są łańcuchami, można je zastąpić liczbami lub kolorami RGB, tak naprawdę nie ma znaczenia – Tombart
Pytanie wciąż nie jest całkiem jasne, przykładowy zestaw danych byłby dobry. Czy potrzebujesz wykreślić oddzielne punkty lub powierzchnię? W jakim formacie są dane? Sugestia: czy możesz oddzielić swoje punkty według kategorii i narysować każdą kategorię na własną rękę? "GatherBy" może się przydać. – Szabolcs