2010-04-09 32 views
10

Szukałem formantów wykresów Silverlight, aby wyświetlić dużą liczbę próbek, (~ 10 000 punktów danych w pięciu osobnych seriach - ~ 50 000 punktów w górę).Kontrola wykresu Silverlight o wysokiej gęstości

Zauważyłem, że istniejące opcje produkowane przez Dundas, Visifire, Microsoft itp. Są wyjątkowo słabe podczas wyświetlania ponad kilkuset punktów danych.

Uważam, że problemy z wydajnością z istniejącą kontrolą wykresów są spowodowane intensywnym wykorzystaniem grafiki wektorowej. Jednym z rozwiązań Ergo byłaby kontrola wykresu po stronie klienta, która używa klasy WritableBitmap do generowania wykresu rastrowego.

Zanim spadnę zbyt głęboko w dół koła, królik wyplątuje się na nowo - , czy ktoś znalazł trzecią stronę lub kontrolkę OSS, która będzie zarządzać dużą liczbą punktów danych na linii błyskającej?

+0

Witaj, spójrz na SciChart, który może renderować wiele serii w sumie 100 000 punktów danych przy 30 FPS na demonstracji wydajności (3 000 000 punktów danych na sekundę). Jest to nowa oferta i będzie gotowa do uruchomienia na początku Q1 2012. Nie ma wszystkich funkcji dostępnych na wykresach LOB, jednak obsługuje wiele typów wykresów, podstawowy kursor, powiększanie, przesuwanie i skalowanie osi oraz bardzo wysoka wydajność. http://www.abtsoftware.co.uk/News/tabid/93/articleType/ArticleView/articleId/16/SciChart_Technology_Preview_-_Fast_WPFSilverlight_Stock_Chart_Performance_Demo.aspx –

Odpowiedz

-1

Czy przyjrzeliśmy się kontrolkom wykresów Telerik? Tu jest link do jednego z ich demo, gdzie są one przy użyciu 100.000 punktów danych:
http://demos.telerik.com/silverlight/#Chart/Sampling

Należy również wspomnieć, że nie stosuje się do tworzenia wykresów kontroluje siebie, więc nie mogę wypowiedzieć się na nich. Ale demówki wyglądają dobrze dla mnie.

EDYTOWANIE:
Powyższy link przestał działać. Tu jest link do najnowszego wcielenia wykresów kontroli Telerik nazywają go ChartView teraz:
http://demos.telerik.com/silverlight/#ChartView/FirstLook

+0

Łącze ładuje pustą stronę. –

+0

Tak, składniki Telerik zostały zaktualizowane od tego czasu. Zaktualizowałem link. –

1

Przed rozpoczęciem zabawy z WritableBitmap na własną rękę przyjrzeć WriteableBitmapEx René Schulte, że blogi o nim here . Niesamowite rzeczy.

+0

Doskonała propozycja! Od tego czasu miałem skrzypce z WritableBitmapEx, aby napisać małą grę, ale nie udało mi się jeszcze na dobre zagrać w jakiekolwiek mapy. Całkiem fajna biblioteka. Dzięki Anthony. – ptg

1

Nie znam żadnych elementów sterujących OSS ani innej firmy, które będą robić to, czego potrzebujesz.

Ten jedyny przypadek, w którym potrzebowałem 100K + datapunktów, sprawiliśmy, że działał, zachowując prostotę. Największym perf dostawcą była liczba elementów w każdym punkcie danych. Utrzymując element w prostej elipsie ze statycznym pędzlem, aplikacja była raczej zgryźliwa.

+0

Witaj, który komponent użyłeś w końcu, który był w stanie renderować 100k punktów? –

7

odjazdu Visiblox (http://www.visiblox.com/) wykresów. W tej chwili pracuję nad aplikacją telemetryczną, która wykorzystuje trzy z ich wykresów w tym samym komponencie Silverlight, zliczając łącznie około 36 000 punktów, a jeśli chodzi o wydajność, jest bardzo mało spowolnienia.

Mają przykład wysokiej wydajności na swojej stronie internetowej tutaj - http://www.visiblox.com/examples/LargeDataSets.Zdecydowałem się użyć Visiblox po loooking w poniższym poście:

New porównanie wydajności: http://www.visifire.com/blog/2011/12/02/fast-silverlight-charts/

Old porównanie wydajności: http://www.scottlogic.co.uk/blog/colin/2010/12/visiblox-visifire-dynamicdatadisplay-charting-performance-comparison/

Mój przykład telemetrii jest teraz częścią CodeProject artykule, że zostały utworzone, jeśli chcesz rzucić okiem!

3

Opierając się na zaleceniach tutaj, właśnie przetestowałem Visiblox i Infragistics.

Visiblox ma dobre doświadczenie programistyczne, czyste interfejsy API, brak ograniczeń. Podczas gdy wydajność jest dobra dla kilku tysięcy punktów danych, wydajność spada wraz z przejściem do zakresu 100k. Oto the Visiblox sample z kilkoma tysiącami punktów (można pobrać próbkę i po prostu poprawić liczbę punktów danych).

Obecnie powszechnym argumentem jest to, że nie należy wiązać tak dużej ilości danych do wykresu, ale należy wcześniej wykonać pewne przycinanie. Zgadzam się z tym, ale najlepiej chcę mieć kontrolę nad mapą, która się mną zaopiekuje. Uzyskiwanie powiększania, przesuwania i tego wszystkiego to nie trywialne zadania, a ja z chęcią wydam kilka 100 $, aby uzyskać tę funkcjonalność. To zwykły ekonomiczny rozsądek, żeby nie wymyślać tutaj koła.

Infragistics z pewnością robi to dobrze. Potrafię związać milion odatapointów i uzyskać gładki wygląd. Oto the Infragistics sample.

Jednak Infragistics instaluje dużo śmieci (lokalną aplikację internetową IIS z samplami, które można zobaczyć również w Internecie), a oprócz (doskonałych) próbek i dokumentacji na poziomie kodu, brakuje mi wprowadzenia na wyższy poziom do każdy komponent i jego poszczególne moduły.

Ponieważ wiele osób na SO poleca Telerik kontroli ich czyste API, dokumentacji i wsparcia dla programistów, ja również przyjrzeć się ich kontroli wykresu. Muszę jednak przyznać, że uważam, że jest raczej powolny (Powiększanie zajmuje około 500-1000 ms, czyli zbyt długo, by czuć się gładko). Oto the Telerik sample.

+0

Aktualnie zajmuję się tabelą [mindscapehq] [http://www.mindscapehq.com/demo/silverlightelements/demopage.html#/ChartOverviewPage]. W porównaniu do Infragistics, osiąga dobre wyniki nawet przy wykreślaniu nierównoległych wartości x (prawdziwy wykres x, y). –

0

wierzę próbka Telerik szukasz można znaleźć here. Pokazuje duże ilości danych, które można powiększać/pomniejszać. Mają także obciążenie serwera "Performance" Demo. Oto przykład Scatter Chart z setkami punktów danych.

Powiązane problemy