WPF 工具包数据可视化。指定 X 轴间隔
WPF Toolkit DataVisualization. Specifying the X axis interval
我正在使用 WPFToolkit 提供的 System.Windows.Controls.DataVisualization.Toolkit.dll。
我有一个图表,在 X 轴上显示日期列表,在 Y 轴上显示整数。
XAML:
<DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" Background="LightSteelBlue" Margin="12">
<DVC:Chart.Series>
<DVC:LineSeries Title="Lines" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}" />
</DVC:Chart.Series>
</DVC:Chart>
代码:
ObservableCollection<KeyValuePair<DateTime, int>> Data = new ObservableCollection<KeyValuePair<DateTime, int>>();
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-10), 100));
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-9), 200));
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-8), 500));
((LineSeries)mcChart.Series[0]).ItemsSource = Data;
我将 mcChart 的 ItemsSource 绑定到 ObservableCollection<int, DateTime>
当我的图表包含足够的数据时,它会将 X 轴上的每个点显示为日期。 IE。 2016-01-06、2016-01-07、2016-01-08 等
但是,如果我在图表上只显示几个点,则间隔会分成几个小时。 IE。 20:00、00:00、04:00、08:00、12:00、16:00、20:00
如何强制它在 X 上只显示日期间隔。
我明白了。我需要在 IndependantAxis 的 LineSeries 中指定 Interval 和 IntervalType。
<DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" Background="LightSteelBlue" Margin="12">
<DVC:Chart.Series>
<DVC:LineSeries Title="Lines" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}">
<DVC:LineSeries.IndependentAxis>
<DVC:DateTimeAxis Orientation="X" Title="Date" Interval="1" IntervalType="Days" />
</DVC:LineSeries.IndependentAxis>
</DVC:LineSeries>
</DVC:Chart.Series>
</DVC:Chart>
我正在使用 WPFToolkit 提供的 System.Windows.Controls.DataVisualization.Toolkit.dll。
我有一个图表,在 X 轴上显示日期列表,在 Y 轴上显示整数。
XAML:
<DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" Background="LightSteelBlue" Margin="12">
<DVC:Chart.Series>
<DVC:LineSeries Title="Lines" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}" />
</DVC:Chart.Series>
</DVC:Chart>
代码:
ObservableCollection<KeyValuePair<DateTime, int>> Data = new ObservableCollection<KeyValuePair<DateTime, int>>();
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-10), 100));
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-9), 200));
Data.Add(new KeyValuePair<DateTime, int>(DateTime.Now.AddDays(-8), 500));
((LineSeries)mcChart.Series[0]).ItemsSource = Data;
我将 mcChart 的 ItemsSource 绑定到 ObservableCollection<int, DateTime>
当我的图表包含足够的数据时,它会将 X 轴上的每个点显示为日期。 IE。 2016-01-06、2016-01-07、2016-01-08 等
但是,如果我在图表上只显示几个点,则间隔会分成几个小时。 IE。 20:00、00:00、04:00、08:00、12:00、16:00、20:00
如何强制它在 X 上只显示日期间隔。
我明白了。我需要在 IndependantAxis 的 LineSeries 中指定 Interval 和 IntervalType。
<DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart" Background="LightSteelBlue" Margin="12">
<DVC:Chart.Series>
<DVC:LineSeries Title="Lines" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}">
<DVC:LineSeries.IndependentAxis>
<DVC:DateTimeAxis Orientation="X" Title="Date" Interval="1" IntervalType="Days" />
</DVC:LineSeries.IndependentAxis>
</DVC:LineSeries>
</DVC:Chart.Series>
</DVC:Chart>