首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazorise派图表组件

Blazorise派图表组件
EN

Stack Overflow用户
提问于 2022-07-15 12:06:39
回答 1查看 64关注 0票数 0

我是Blazorise图组件的初学者,我使用Blazorise和Im,但是我正在寻找实现Blazorise图表组件,对于如何实现它有任何想法。没有任何例子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-16 20:57:39

您可以尝试将其作为启动示例并根据应用程序进行修改:

代码语言:javascript
复制
<Chart @ref="pieChart" Type="ChartType.Pie" TItem="double" Options="@chartOptions" />
<Button Color="Color.Primary" Outline Clicked="@(async () => await HandleRedraw( pieChart, GetPieChartDataset ))">Redraw</Button>

@code {
    private Chart<double> pieChart;

    ChartOptions chartOptions = new() { AspectRatio = 1.5 };

    private string[] Labels = { "Red", "Blue", "Yellow", "Green", "Purple", "Orange" };
    private List<string> backgroundColors = new() { ChartColor.FromRgba(255, 99, 132, 0.2f), ChartColor.FromRgba(54, 162, 235, 0.2f), ChartColor.FromRgba(255, 206, 86, 0.2f), ChartColor.FromRgba(75, 192, 192, 0.2f), ChartColor.FromRgba(153, 102, 255, 0.2f), ChartColor.FromRgba(255, 159, 64, 0.2f) };
    private List<string> borderColors = new() { ChartColor.FromRgba(255, 99, 132, 1f), ChartColor.FromRgba(54, 162, 235, 1f), ChartColor.FromRgba(255, 206, 86, 1f), ChartColor.FromRgba(75, 192, 192, 1f), ChartColor.FromRgba(153, 102, 255, 1f), ChartColor.FromRgba(255, 159, 64, 1f) };
  
    private bool isAlreadyInitialised;

    private Random random = new(DateTime.Now.Millisecond);
  
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (!isAlreadyInitialised)
        {
            isAlreadyInitialised = true;

            await HandleRedraw(pieChart, GetPieChartDataset);
        }
    }

    private async Task HandleRedraw<TDataSet, TItem, TOptions, TModel>(Blazorise.Charts.BaseChart<TDataSet, TItem, TOptions, TModel> chart, Func<TDataSet> getDataSet)
        where TDataSet : ChartDataset<TItem>
        where TOptions : ChartOptions
        where TModel : ChartModel
    {
        await chart.Clear();

        await chart.AddLabelsDatasetsAndUpdate(Labels, getDataSet());
    }
    
    private int pieLabel;

    private PieChartDataset<double> GetPieChartDataset()
    {
        return new()
        {
            Label = $"#{++pieLabel} of randoms",
            Data = RandomizeData(),
            BackgroundColor = backgroundColors,
            BorderColor = borderColors,
            BorderWidth = 1
        };
    }

    List<double> RandomizeData() => RandomizeData(3, 50);

    List<double> RandomizeData(int min, int max)
    {
        return Enumerable.Range(0, 6).Select(x => random.Next(min, max) * random.NextDouble()).ToList();
    }
}

您可以在Blazorise.Demo项目中找到更多关于所有Blazorise组件的示例,您可以在GitHub:https://github.com/Megabit/Blazorise/tree/master/Demos/Blazorise.Demo/Pages/Tests上找到这些示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72993740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档