0

WPF 用の dynamicdatadisplay ライブラリを使用しています。シルバーライトではない

私はすでにバックエンドのコーディングを終えており、グラフにこだわっています。

DateTime (時間) である X 軸があります。

また、10 進数の Y 軸があります。

しかし、動的文字列になるこの軸カスタム マーカー (またはその他のもの) の間に配置する方法が見つかりません。

たとえば、2013 年 3 月 11 日の 10 時間 (x 軸) では、株式の価格は 120 ドル (y 軸) でしたが、グラフ (軸のクロス) では、文字列 "Volume: 50" である必要があり、表示されます。どのくらいの株が売れたのか.

コードでそれを作る方法は?例やアドバイスをお願いします。

今私のプロジェクトは次のようになります:

========= XAML ==========

    <d3:ChartPlotter Name="plotter" Margin="20,20,20,70">
        <d3:ChartPlotter.HorizontalAxis>
            <d3:HorizontalDateTimeAxis Name="xAxis"/>
        </d3:ChartPlotter.HorizontalAxis>
        <d3:ChartPlotter.VerticalAxis>
            <d3:VerticalIntegerAxis Name="yAxis"/>
        </d3:ChartPlotter.VerticalAxis>
    </d3:ChartPlotter>

    <Button Content="Button" HorizontalAlignment="Left" Margin="254,364,0,0" VerticalAlignment="Top" Width="145" Height="46" Click="Button_Click_1"/>

</Grid>

=============================================

================ MainWindow.cs =================

private void Button_Click_1(object sender, RoutedEventArgs e)
    {

        List<DataForChart> dataForChart = new List<DataForChart>();

        dataForChart.Add(new DataForChart(new DateTime(2013, 11, 03, 22, 10, 0), 45));

        dataForChart.Add(new DataForChart(new DateTime(2013, 11, 03, 22, 20, 0), 48));

        dataForChart.Add(new DataForChart(new DateTime(2013, 11, 03, 22, 30, 0), 24));

        DateTime[] dates = new DateTime[dataForChart.Count];
        int[] price = new int[dataForChart.Count];

        for (int i = 0; i < dataForChart.Count; ++i)
        {
            dates[i] = dataForChart[i].date;
            price[i] = dataForChart[i].price;

        }

        var datesDataSource = new EnumerableDataSource<DateTime>(dates);
        datesDataSource.SetXMapping(x => xAxis.ConvertToDouble(x));

        var numberOpenDataSource = new EnumerableDataSource<int>(price);
        numberOpenDataSource.SetYMapping(y => y);

        CompositeDataSource compositeDataSource1 = new
        CompositeDataSource(datesDataSource, numberOpenDataSource);

        plotter.AddLineGraph(compositeDataSource1,
          new Pen(Brushes.Blue, 2),
          new CirclePointMarker { Size = 10.0, Fill = Brushes.Blue },
          new PenDescription("Price Chart"));

        plotter.Viewport.FitToView();

    }

    public class DataForChart
    {
        public DateTime date;
        public int price;

        public DataForChart(DateTime Date, int Price)
        {
            date = Date;
            price = Price;
        }
    }
4

1 に答える 1