2010-04-16 21 views
8

Jak mogę narysować świece w C#? Czy ktoś ma jakieś przykłady z ładnym interfejsem?Jak narysować świece w C#

+0

jaka jest twoja platforma? formularze okien, wpf, asp, konsola? –

+0

Przepraszam, jestem całkowicie początkujący w C# i myślałem w dobrym punkcie wyjścia. Powinien być oparty na komputerze. Którą możesz mi zasugerować? – Thiago

+0

Chciałbym iść z WPF. telerik ma ładny zestaw wykresów, podobnie jak wizjodawca. –

Odpowiedz

4

Użyłem MSChart i okazało się, że jest całkiem niezła. Obsługuje wykresy świecowe. Użyłem również ZedGraph, ale znalazłem kilka graficznych anomalii, które pojawiły się na moich listach przebojów, ale i tak były dobre.

+0

Nice! Nadal lubię telerik lepiej, ale to nie jest odpowiedź. – Thiago

0

Używam .netCharting bibliotekę dla tego i to całkiem dobrze. Obsługuje wszystkie rodzaje wykresów - świeca w zestawie. Jedną z rzeczy, na którą należy zwrócić uwagę, jest to, że przy obecnej wersji (5.3) trzeba odwrócić wysoką i niską cenę - dość brzydki i oczywisty błąd. To produkt komercyjny, ale po przystępnej cenie, więc może być tego wart, w zależności od projektu.

0

ZedGraph jest bardzo łatwą w użyciu biblioteką do tworzenia wykresów LGPL, która jest can handle candlestick charts.

Jeśli chcesz zapisać obraz na dysk, może to zrobić. Jeśli potrzebujesz wyświetlić interaktywny wykres obsługujący powiększanie/przesuwanie, możesz to zrobić również za pomocą doskonałego sterowania ZedGraphControl.

0

Używam tego dla danych akcji, ale jej w VB

 With Chart1.ChartAreas("myarea") 
      .AxisY.Maximum = (Math.Ceiling((HighValue * 100))/100) 
      .AxisY.Minimum = (Math.Floor((LowValue * 100))/100) 
      .AxisY.LabelStyle.Format = "{0.00}" 
     End With 

     Dim s1 As New Series 
     With s1 
      .ChartArea = "myarea" 
      .ChartType = SeriesChartType.Candlestick 
      .XValueType = ChartValueType.String 
      .YValueType = ChartValueType.Single 
      .YValuesPerPoint = 4 
      .CustomProperties = "PriceDownColor=Red, PriceUpColor=Green" 
     End With 


     For i = Globals.GraphColumns - 1 To 0 Step -1 
      OutData = Data_Array.Item(i) 

      s1.Points.AddXY(OutData.thedate, OutData.high, OutData.low, OutData.close, OutData.open) 


     Next 


     Chart1.Series.Add(s1) 
     Me.Controls.Add(Chart1) 
+0

Witamy w Stackoverflow. Pytanie to dotyczy konkretnie rozwiązań w języku C#, a nie VB. Proszę odpowiednio zaktualizować swoją odpowiedź. Dziękuję Ci! –