Witajcie. Mam problem z wykresem. Dane wejściowe do wykresu:
nr punktu X Y
-
1 1
-
2 1.3
-
1 0.8
-
3 5
Nie wiem co zrobic, co zmienic, zeby punkt nr 3 byl narysowany prawidlowo.. tzn "w lewo" i "nizej" niz poprzedni punkt..
Oleksy_Adam napisał(a)
Dane masz do d**y...
to zalezy...:p
zawsze mozesz uzyc dwóch serii danych i zrobic je tego samego koloru
bedzie wygladalo jak trzeba (tylko ze w 3d sie rozjedzie:-) )
Ależ te wyniki przedstawiają funkcję wielowartościową. Jeśli są to wyniki pomiarów, to oznacza, że dla jednej wartości było dokonywane kilka pomiarów. A skoro tak - to zanim zajmiesz się rysowaniem wykresów, musisz przetworzyć dane:
dla każdego x liczysz wartość oczekiwaną y-ka, np ze średniej arytmetycznej:
dla x=1 masz: y_śr(1) = 0.9
dla każdego x liczysz błąd: np z odchylenia standardowego
dla x=1 masz: y_err(1) =0.1
i dopiero takie wyniki możesz rysować w excelu, TCharcie czy innym GnuPlocie.
Najpierw teoria dotycząca zagadnienia, a później kodowanie.
// dodane po konsultacji na gg ;)
cóż, takie punkty jakie podałeś mają dość dziwny "wykres" (przez to, że jest wiele wartości dla jednego x)... W zasadzie, to nie mają wykresu, bo jak je niby połączyć? Popatrz na rysunek:
jak ma biegnąć wykres? Ja zdecydowałem, że niebieski mi się podoba, ale inne też są przecież uprawnione - a to nie wygląda jak wykres, tylko jak jakaś kratownica... bez sensu.
Zaś rysowanie samych punktów zrealizowałbym tak raczej, jak radzi Johny_Morfina. Podzieliłbym dane na kilka serii i każdą serię narysował oddzielnie. Dzielenie na serie opierałoby się na takim warunku, że w danej serii nie mogą znaleźć się dwa punkty o tej samej współrzędnej x.
moim zdaniem jednak obydwa rozwiązania są do d**y, i tak naprawdę masz zobić coś takiego:
czyli biorąc pod uwagę WSZYSTKIE punkty musisz policzyć współczynnik kierunkowy najlepiej dopasowanej prostej. Robi się to z regresji liniowej. W twoim przypadku są dwie opcje:
3.1 punkty zawsze powtarzają się tyle samo razy: nie ma problemu - liczysz średnie i błędy - wstawiasz do wzorów na regresję ważoną i po kłopocie
3.2 tylko niektóre punkty się powtarzają. Też liczysz z regresji, ale tutaj jest problem, bo jak ustalić błąd jednokrotnego pomiaru? Można by podać niepewność urządzenia pomiarowego (urządzenie zawsze ma podaną niepewność gdzieś na obudowie albo w dokumentacji), jakkolwiek mogą ci się przyczepić do takiego rozwiązania...
o regresji masz tu: http://pl.wikipedia.org/wiki/Regresja_liniowa
więcej nie wymyślę, inaczej nie wykombinuję...
@Adam: kurcze, nie wiedziałem, że macie na 4programmers art o regresji z przykładowym kodem, jestem pod wrażeniem... i nie mów mi tylko, że nie szukałem to nie wiedziałem - po co miałem szukać, skoro ja regresję znam dobrze ;)
Chłopaki jednak da się to zrobić!
Te dane które przedstawiłem na forum byly tylko przykładowymi...
Cały problem rozwiązuje się dwoma linijkami:
Series.XValues.Order:=IoNone;
Series.YValues.Order:=IoNone;
Co powoduje, że dane wykresu nie są SORTOWANE. Teraz wygląda jak należy.
Dziekuję Wam za pomoc i fatygę, pozdrawiam :)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.