Рендеринг двух LineSeries без масштабирования - PullRequest
0 голосов
/ 09 апреля 2011

У меня есть две серии строк, одна из которых следует за другой в своих данных, они оба представляют месячные дни, например:

1-я серия:
1 2 3 4 5 6 7

2-я серия:
1 2 3 4 5 6 7 8 ... 29 30 31

Первая серия всегда содержится (или равна) во второй.

Я хочу представить эти две серии на линейной диаграмме таким образом, чтобы первая серия не масштабировалась на всю ширину диаграммы (7/31 ~ = 0,25, поэтому она должна занимать первую горизонтальную четвертьОсь X).

Итак, я думаю, что мне нужна какая-то ось диаграммы, которая будет отображать 31 день, а затем две серии будут следовать этой оси и отображаться в соответствии с ней.(без масштабирования 1-й серии, чтобы заполнить все горизонтальное пространство оси X).

1 Ответ

1 голос
/ 09 апреля 2011

Вроде бы все просто.

Вот скриншот, 7 синих точек представляют 1-ю серию, 31 красных точек - 2-ю серию.Убедитесь, что это то, что вам нужно enter image description here

Если диаграмма отображается правильно, вот ее исходный код:

XAML

    <chart:Chart>
        <chart:LineSeries ItemsSource="{Binding FirstWeekItems}" 
                          IndependentValueBinding="{Binding Day}" 
                          DependentValueBinding="{Binding Value}" />
        <chart:LineSeries ItemsSource="{Binding MonthItems}" 
                          IndependentValueBinding="{Binding Day}" 
                          DependentValueBinding="{Binding Value}" />
    </chart:Chart>

Код позади

public partial class MainPage : UserControl
{
    public MainPage()
    {
        this.InitializeComponent();

        Random rd = new Random();
        var vm = new ChartModel
        {
            FirstWeekItems = Enumerable.Range(1,7).Select(i => new ItemViewModel{Day = i, Value = rd.Next(23,25)}).ToList(),
            MonthItems = Enumerable.Range(1, 31).Select(i => new ItemViewModel { Day = i, Value = 20+i }).ToList()
        };
        this.DataContext = vm;
    }
}

public class ChartModel
{
    public List<ItemViewModel> FirstWeekItems { get; set; }

    public List<ItemViewModel> MonthItems { get; set; }
}

public class ItemViewModel
{
    public int Day { get; set; }
    public double Value { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...