Невозможно создать свечную диаграмму, используя MVC и System.Web.Helpers.Chart

Приведенный ниже код использует функции построения диаграмм в System.Web.Helpers.Chart. Я пытаюсь создать свечную диаграмму, где есть четыре значения y (открытие, максимум, минимум и закрытие) для каждого значения x (которое будет датой).

Я получаю эту ошибку с кодом ниже: "Ошибка вставки точек данных. Количество значений X меньше, чем значения Y".

Я чувствую, что должен определить количество точек y или что-то в этом роде... но я не могу найти ни одного примера Stock или Candlestick, который бы использовал библиотеку System.Web.Helpers.Chart.

        var bytes = new Chart(width: 400, height: 200)
            .AddSeries(
                chartType: "Candlestick",
                xValue: new[] { "6/1/2016", "6/2/2016", "6/3/2016" },
                yValues: new[] { 100, 110, 95, 97, 100, 110, 95, 97, 100, 110, 95, 97, })                    
            .GetBytes("png");

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

Независимо от того, в каком порядке я добавляю серию, я получаю в значительной степени это изображение... и то же самое я использую Stock или Candlestick.

        var theme = @"
<Chart  BackColor=""White""
        BorderColor=""181, 64, 1""
        BorderWidth=""2"" 
        BorderlineDashStyle=""Solid"" 
        Palette=""BrightPastel"">
    <ChartAreas>
        <ChartArea  Name=""Default"" 
                    _Template_=""All"" 
                    BackColor=""Transparent"" 
                    BackSecondaryColor=""White"" 
                    BorderColor=""Transparent""
                    BorderDashStyle=""Solid"" 
                    ShadowColor=""Transparent"">
            <AxisY LineColor=""Transparent"">
                <MajorGrid Interval=""Auto"" LineColor=""Transparent"" />
                <LabelStyle Font=""Trebuchet MS, 8.25pt, style=Bold"" />
            </AxisY>
            <AxisX LineColor=""Transparent"">
                <MajorGrid LineColor=""Transparent"" />
                <LabelStyle Font=""Trebuchet MS, 8.25pt, style=Bold"" />
            </AxisX>
            <Area3DStyle Inclination=""15"" IsClustered=""False"" IsRightAngleAxes=""False"" Perspective=""10"" Rotation=""10"" WallWidth=""0"" />
        </ChartArea>
    </ChartAreas>
    <Legends>
        <Legend _Template_=""All"" Alignment=""Center"" BackColor=""Transparent"" Docking=""Bottom"" Font=""Trebuchet MS, 8.25pt, style=Bold"" IsTextAutoFit =""False"" LegendStyle=""Row"">
        </Legend>
    </Legends>
</Chart>";

        var chartType = "Stock";
        var xValue = new[] { "6/1/2016", "6/2/2016", "6/3/2016" };

        var bytes = new Chart(width: 400, height: 200, theme: theme)
            .AddSeries(
                chartType: chartType,
                xValue: xValue,
                yValues: new[] { 50, 50, 80 }
                )
            .AddSeries(
                chartType: chartType,
                xValue: xValue,
                yValues: new[] { 20, 130, 120 }
                )
            .AddSeries(
                chartType: chartType,
                xValue: xValue,
                yValues: new[] { 70, 230, 120 }
                )
            .AddSeries(
                chartType: chartType,
                xValue: xValue,
                yValues: new[] { 20, 70, 60 }
                )
            .GetBytes("png");

0 ответов

Другие вопросы по тегам