Серия Точки¶
Вид серии точек (CartesianPointSeriesView) отображает отдельные точки. Каждая точка адресуется значениями X и Y. На следующей картинке показан образец CartesianPointSeriesView, который отображает две серии разбросанных точек, каждая из которых рисована своим собственным цветом.

Создание точечного последовательного представления¶
Чтобы создать точечный последовательный вид, добавьте объект CartesianSeries в коллекцию CartesianChart.Series и инициализируйте CartesianSeries.View экземпляром CartesianPointSeriesView.
В следующем коде показано, как создать последовательный вид точечной области в XAML и code-behind.
<mxc:CartesianChart x:Name="chartControl">
    <mxc:CartesianChart.Series>
        <mxc:CartesianSeries Name="pointSeries1" DataAdapter="{Binding DataAdapter}" >
            <mxc:CartesianPointSeriesView Color="Red" MarkerSize="2"/>
        </mxc:CartesianSeries>
    </mxc:CartesianChart.Series>
</mxc:CartesianChart>
CartesianSeries series = new CartesianSeries();
chartControl.Series.Add(series);
double[] args = new double[] {3,2,1,2,3,4,5,4 };
double[] values = new double[] { -1,0,1,2,3,2,1,0 };
// Use ScatterDataAdapter since points are not sorted by the X coordinate
series.DataAdapter = new ScatterDataAdapter(args, values);
series.View = new CartesianPointSeriesView()
{
    Color = Avalonia.Media.Colors.Blue,
    MarkerSize = 4,
};
Пример - Используйте вид серии точек для отображения группы точек¶
В этом примере представление серии точек используется для отображения точек, случайным образом разбросанных вдоль числовых осей X и Y. Точки в серии исходных данных не отсортированы по координате X. Для отображения несортированных точек в виде серии используется адаптер ScatterDataAdapter. 

<mx:MxWindow xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="using:ChartPointSeriesView.ViewModels"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:mx="https://schemas.eremexcontrols.net/avalonia"
        xmlns:mxc="https://schemas.eremexcontrols.net/avalonia/charts"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="ChartPointSeriesView.Views.MainWindow"
        x:DataType="vm:MainWindowViewModel"
        Icon="/Assets/EMXControls.ico"
        Title="ChartPointSeriesView"
        Width="600" Height="400">
    <Design.DataContext>
        <vm:MainWindowViewModel/>
    </Design.DataContext>
    <mxc:CartesianChart x:Name="chartControl">
        <mxc:CartesianChart.Series>
            <mxc:CartesianSeries Name="pointSeries1" DataAdapter="{Binding PointSeriesVM1.DataAdapter}" >
                <mxc:CartesianPointSeriesView Color="{Binding PointSeriesVM1.Color}" MarkerSize="2"/>
            </mxc:CartesianSeries>
        </mxc:CartesianChart.Series>
        <mxc:CartesianChart.AxesX>
            <mxc:AxisX Name="xAxis" Title="V1" />
        </mxc:CartesianChart.AxesX>
        <mxc:CartesianChart.AxesY>
            <mxc:AxisY Title="V2"/>
        </mxc:CartesianChart.AxesY>
    </mxc:CartesianChart>
</mx:MxWindow>
using CommunityToolkit.Mvvm.ComponentModel;
using Eremex.AvaloniaUI.Charts;
using System.Collections.Generic;
using System;
using Avalonia.Media;
using Avalonia;
namespace ChartPointSeriesView.ViewModels;
public partial class MainWindowViewModel : ViewModelBase
{
    [ObservableProperty] SeriesViewModel pointSeriesVM1;
    public MainWindowViewModel()
    {
        PointSeriesVM1 = new()
        {
            Color = Color.FromUInt32(0xffa24f46),
            DataAdapter = GenerateRandomData()
        };
    }
    private static Random random = new Random();
    private static double GenerateNormalValue(double mean, double stdDev)
    {
        double u1 = 1.0 - random.NextDouble(); 
        double u2 = 1.0 - random.NextDouble();
        double randStdNormal = Math.Sqrt(-2.0 * Math.Log(u1)) * Math.Sin(2.0 * Math.PI * u2);
        return mean + stdDev * randStdNormal;
    }
    public static ScatterDataAdapter GenerateRandomData()
    {
        int count = 7000;
        double xMean= 50, xStdDev= 10, yMean = 20, yStdDev = 5;
        List<double> args = new List<double>();
        List<double> values = new List<double>();
        for(int i = 0; i < count; i++)
        {
            double x = GenerateNormalValue(xMean, xStdDev);
            double y = GenerateNormalValue(yMean, yStdDev);
            args.Add(x);
            values.Add(y);
        }
        return new ScatterDataAdapter(args, values);
    }
}
public partial class SeriesViewModel : ObservableObject
{
    [ObservableProperty] Color color;
    [ObservableProperty] ScatterDataAdapter dataAdapter;
}
Данные для просмотра точечных рядов¶
Для предоставления данных для представлений точечных рядов можно использовать следующие адаптеры данных:
Числовые значения X:
- FormulaDataAdapter
- ScatterDataAdapter
- SortedNumericDataAdapter
Значения даты и времени X:
- SortedDateTimeDataAdapter
- SortedTimeSpanDataAdapter
Качественные значения X:
- QualitativeDataAdapter
Свойства просмотра серии точек¶
- Color— Задает цвет отрисовки серии.
- 
MarkerImage— Получает или устанавливает картинку для использования в качестве пользовательских точечных маркеров. Если картинка не указана, отображаются маркеры квадратной формы по умолчанию. Вы можете использовать экземпляр классаSvgImageдля указания картинки в формате SVG.Свойство MarkerImageобъявлено с атрибутом[Content], который позволяет вам определить картинку непосредственно между <Просмотр картезианских последовательностей> теги.<mxc:CartesianPointSeriesView> <SvgImage Source="avares://Demo/Assets/circle.svg" /> </mxc:CartesianPointSeriesView>Файлы SVG содержат предопределенные цвета для элементов SVG. Чтобы эти цвета соответствовали цвету вашего ряда данных, вы можете либо: - Предварительно вручную отредактируйте исходный файл SVG-картинки
- Используйте свойство MarkerImageCssдля динамической настройки styles для элементов SVG. Стили применяются при отображении точечных маркеров.
 
- 
MarkerImageCss— Указывает CSS styles для настройки во время выполнения SVG-картинки, определенной свойствомMarkerImage. Основным вариантом использования является замена цветов элементов SVG на цвет серии (Color). Включите заполнитель{0}, чтобы вставить значение свойстваColorв CSS-код.Например, когда свойство MarkerImageсодержит SVG-картинку с элементом круга, следующий CSS-код стилизуетcircleс оранжевой заливкой (используя цвет серии) и темно-красной рамкой:<mxc:CartesianPointSeriesView Color="orange" MarkerImageCss="circle {{fill:{0};stroke:darkred;}}"> <SvgImage Source="avares://Demo/Assets/circle.svg" /> </mxc:CartesianPointSeriesView>Смотрите также: Пример - Создайте представление серии Lollipop и используйте пользовательские SVG-маркеры . 
- 
MarkerSize— Определяет размер точечных маркеров.
- ShowInCrosshair— Определяет видимость метки диаграммы перекрестий для текущего ряда. Смотрите раздел Настройка меток диаграммы для перекрестия .
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.