1

xamChart を介して次の形式でデータを表示する必要があります。

time   | v1  | v2  | ... | vn
-------+-----+-----+-   -+-----
t1     |     |     | ... |       
t2     |     |     | ... |  
...    .     .     . ... . 
tm     |     |     | ... |

v1 - vn設計時に不明なラベル ( nも不明) はどこにありますか。t1 - tmX軸に必要な日時値です。他のセルにはいくつかの数字が含まれています。

私が必要としているのは、以下のようなグラフですが、インデックスだけでなく X 軸のラベルとして時間が表示されます。

xamChart

私が使用するコードは次のとおりです。

foreach (var column in dataTable.Columns.OfType<DataColumn>().Skip(1))
{
    var s = new Series
                {
                    DataSource = dataTable,
                    DataMapping = column.ColumnName,
                    ChartType = ChartType.Line,
                    Label = column.ColumnName,
                };

    queriesChart.Series.Add(s);
}
4

1 に答える 1

0

Label の DataTemplate で CategoryDateTimeAxis を使用して、XamDataChart でこれを実現できます。

<ig:CategoryDateTimeXAxis 
    x:Name="xmXAxis" 
    DateTimeMemberPath="Label"  
    ItemsSource="{Binding}" 
    Label="{StaticResource XAxisLabelTemplate }">

データ テンプレート:

<DataTemplate x:Key="XAxisLabelTemplate">
    <StackPanel Orientation="Vertical">
        <TextBlock Text="{Binding Item.Date, Converter={StaticResource igStringFormatConverter}, ConverterParameter=MM/dd/yy}" 
                    TextAlignment="Center" Foreground="#CCCCCC" Height="15" Width="65" Margin="0,4,0,0"/>                 
        <TextBlock Text="{Binding Item, Converter={StaticResource igStringFormatConverter}, ConverterParameter=T}"
                    TextAlignment="Center" Foreground="#CCCCCC" Height="15" Width="65"/>
    </StackPanel>   
</DataTemplate>

コンバータ:

class igStringFormatConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        DateTime dt = (DateTime)value;
        string fmtDt = String.Format("{0:" + parameter.ToString() + "}", dt);          
        return fmtDt;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}
于 2012-09-11T15:39:29.207 に答える