国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在 Blazor 中使用 Chart.js 快速創(chuàng)建數(shù)據(jù)可視化圖表

大數(shù)據(jù) 數(shù)據(jù)可視化
Blazor是一種新興的Web應(yīng)用程序框架,具有很大的潛力和發(fā)展前景。Blazor是在.NET和Razor上構(gòu)建的用戶界面框架,它采用了最新的Web技術(shù)和.NET框架優(yōu)勢(shì),可以使用C# 編程語言編寫Web 應(yīng)用程序,它不僅可以提高開發(fā)效率,還可以提供更好的用戶體驗(yàn)和更好的可維護(hù)性。

前言

BlazorChartjs 是一個(gè)在 Blazor 中使用 Chart.js 的庫(支持Blazor WebAssembly和Blazor Server兩種模式),它提供了簡(jiǎn)單易用的組件來幫助開發(fā)者快速集成數(shù)據(jù)可視化圖表到他們的 Blazor 應(yīng)用程序中。本文我們將一起來學(xué)習(xí)一下在 Blazor 中使用 Chart.js 快速創(chuàng)建數(shù)據(jù)可視化圖表。

Blazor是什么?

Blazor是一種新興的Web應(yīng)用程序框架,具有很大的潛力和發(fā)展前景。Blazor是在.NET和Razor上構(gòu)建的用戶界面框架,它采用了最新的Web技術(shù)和.NET框架優(yōu)勢(shì),可以使用C# 編程語言編寫Web 應(yīng)用程序,它不僅可以提高開發(fā)效率,還可以提供更好的用戶體驗(yàn)和更好的可維護(hù)性。

創(chuàng)建Blazor WebAssembly應(yīng)用

創(chuàng)建名為ChartjsExercise的Blazor WebAssembly應(yīng)用:

圖片圖片

圖片圖片

圖片圖片

安裝NuGet

安裝PSC.Blazor.Components.Chartjs包:

圖片圖片

添加以下腳本

打開index.html文件,在頁面末尾添加以下腳本:

<script src="_content/PSC.Blazor.Components.Chartjs/lib/Chart.js/chart.js"></script>
<script src="_content/PSC.Blazor.Components.Chartjs/Chart.js" type="module"></script>

圖片圖片

引入組件

打開你的_Imports.razor文件并添加以下內(nèi)容:

@using PSC.Blazor.Components.Chartjs
@using PSC.Blazor.Components.Chartjs.Enums
@using PSC.Blazor.Components.Chartjs.Models
@using PSC.Blazor.Components.Chartjs.Models.Common
@using PSC.Blazor.Components.Chartjs.Models.Bar
@using PSC.Blazor.Components.Chartjs.Models.Bubble
@using PSC.Blazor.Components.Chartjs.Models.Doughnut
@using PSC.Blazor.Components.Chartjs.Models.Line
@using PSC.Blazor.Components.Chartjs.Models.Pie
@using PSC.Blazor.Components.Chartjs.Models.Polar
@using PSC.Blazor.Components.Chartjs.Models.Radar
@using PSC.Blazor.Components.Chartjs.Models.Scatter

圖片圖片

柱狀圖

創(chuàng)建BarSimple.razor組件:

圖片圖片

圖片圖片

razor頁面代碼

@page "/BarSimple"
@using ChartjsExercise.Model
<h3>柱狀圖</h3>

<Chart Cnotallow="_config" @ref="_chart" Height="500px"></Chart>

@code {
    private BarChartConfig? _config;
    private Chart? _chart;

    protected override async Task OnInitializedAsync()
    {
        _config = new BarChartConfig()
            {
                Options = new Options()
                {
                    Responsive = true,
                    MaintainAspectRatio = false,
                    Plugins = new Plugins()
                    {
                        Legend = new Legend()
                        {
                            Align = Align.Center,
                            Display = true,
                            Position = LegendPosition.Right
                        }
                    },
                    Scales = new Dictionary<string, Axis>()
                {
                    {
                        Scales.XAxisId, new Axis()
                        {
                            Stacked = true,
                            Ticks = new Ticks()
                            {
                                MaxRotation = 0,
                                MinRotation = 0
                            }
                        }
                    },
                    {
                        Scales.YAxisId, new Axis()
                        {
                            Stacked = true
                        }
                    }
                }
                }
            };

        _config.Data.Labels = BarSimpleData.SimpleBarText;
        _config.Data.Datasets.Add(new BarDataset()
            {
                Label = "Value",
                Data = BarSimpleData.SimpleBar.Select(l => l.Value).ToList(),
                BackgroundColor = Colors.Palette1,
                BorderColor = Colors.PaletteBorder1,
                BorderWidth = 1
            });
    }
}

BarSimpleData

public class BarSimpleData
    {
        public static List<string> SimpleBarText = new List<string>() { "一月", "二月", "三月", "四月", "五月", "六月", "七月" };
        public static List<DataItem> SimpleBar = new List<DataItem>()
        {
            new DataItem() { Name = "一月", Value = 65 },
            new DataItem() { Name = "二月", Value = 59 },
            new DataItem() { Name = "三月", Value = 80 },
            new DataItem() { Name = "四月", Value = 81 },
            new DataItem() { Name = "五月", Value = 56 },
            new DataItem() { Name = "六月", Value = 55 },
            new DataItem() { Name = "七月", Value = 40 }
        };
    }

展示效果

圖片

餅圖

創(chuàng)建PieSimple.razor組件:

圖片

razor頁面代碼

@page "/PieSimple"
@using ChartjsExercise.Model
<h3>餅圖</h3>

<Chart Cnotallow="_config" @ref="_chart" Height="500px"></Chart>

@code {
    private PieChartConfig? _config;
    private Chart? _chart;

    protected override async Task OnInitializedAsync()
    {
        _config = new PieChartConfig()
            {
                Options = new PieOptions()
                {
                    Responsive = true,
                    MaintainAspectRatio = false
                }
            };

        _config.Data.Labels = PieSimpleData.SimplePieText;
        _config.Data.Datasets.Add(new PieDataset()
            {
                Label = "數(shù)據(jù)集",
                Data = PieSimpleData.SimplePie.ToList(),
                BackgroundColor = Colors.PaletteBorder1,
                HoverOffset = 4
            });
    }
}

PieSimpleData

public class PieSimpleData
    {
        public static List<string> SimplePieText = new List<string>() { "一月", "二月", "三月", "四月" };
        public static List<decimal?> SimplePie = new List<decimal?>() { 300, 50, 100, 20 };
    }

展示效果

圖片圖片

折線圖

創(chuàng)建LineSimple.razor組件:

圖片圖片

razor頁面代碼

@page "/LineSimple"
@using ChartjsExercise.Model

<h3>折線圖</h3>

<Chart Cnotallow="_config" @ref="_chart" Height="500px"></Chart>

@code {
    private LineChartConfig? _config;
    private Chart? _chart;

    protected override async Task OnInitializedAsync()
    {
        _config = new LineChartConfig()
        {
        };

        _config.Data.Labels = LineSimpleData.SimpleLineText;
        _config.Data.Datasets.Add(new LineDataset()
            {
                Label = "數(shù)據(jù)集",
                Data = LineSimpleData.SimpleLine.ToList(),
                BorderColor = Colors.PaletteBorder1.FirstOrDefault(),
                Tension = 0.1M,
                Fill = false,
                PointRadius = 15,
                PointStyle = PointStyle.Cross
            });
    }

    private void AddValue()
    {
        Random rd = new Random();
        _chart.AddData(new List<string?>() { "August" }, 0, new List<decimal?>() { rd.Next(0, 200) });
    }
}

LineSimpleData

public class LineSimpleData
    {
        public static List<string> SimpleLineText = new List<string>() { "一月", "二月", "三月", "四月", "五月", "六月", "七月" };
        public static List<decimal?> SimpleLine = new List<decimal?>() { 65, 59, 80, 81, 86, 55, 40 };
        public static List<decimal?> SimpleLine2 = new List<decimal?>() { 33, 25, 35, 51, 54, 76, 60 };
        public static List<decimal?> SimpleLine3 = new List<decimal?>() { 53, 91, 39, 61, 39, 87, 23 };
    }

展示效果

圖片圖片

配置菜單導(dǎo)航欄

在組件NavMenu.razor中配置:

<div class="top-row ps-3 navbar navbar-dark">
    <div class="container-fluid">
        <a class="navbar-brand" href="">ChartjsExercise</a>
        <button title="Navigation menu" class="navbar-toggler" @notallow="ToggleNavMenu">
            <span class="navbar-toggler-icon"></span>
        </button>
    </div>
</div>

<div class="@NavMenuCssClass nav-scrollable" @notallow="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="BarSimple">
                <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span>柱狀圖
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="PieSimple">
                <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span>餅圖
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="LineSimple">
                <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span>折線圖
            </NavLink>
        </div>
    </nav>
</div>

@code {
    private bool collapseNavMenu = true;

    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    private void ToggleNavMenu()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

更多圖表效果截圖

  • 更多圖表效果展示可以查看官網(wǎng)示例地址:https://chartjs.puresourcecode.com

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片 圖片

責(zé)任編輯:武曉燕 來源: 追逐時(shí)光者
相關(guān)推薦

2022-08-30 23:40:32

JavaScrip圖表Chart.js

2021-04-09 10:42:03

數(shù)據(jù)可視化框架大數(shù)據(jù)

2021-10-11 08:04:22

Python數(shù)據(jù)行程

2023-12-18 15:02:00

PyechartsPython數(shù)據(jù)可視化工具

2023-06-11 16:12:14

數(shù)據(jù)可視化圖表類型

2020-03-01 14:01:22

Echarts數(shù)據(jù)可視化圖表

2021-02-20 09:14:35

PythonPygal可視化

2015-08-20 10:04:40

可視化

2021-02-04 16:08:01

RoughViz可視化圖表

2019-05-28 11:52:43

可視化圖表數(shù)據(jù)

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2015-08-20 10:00:45

可視化

2017-10-14 13:54:26

數(shù)據(jù)可視化數(shù)據(jù)信息可視化

2014-05-28 15:23:55

Rave

2022-06-29 10:58:51

軟件遷移學(xué)習(xí)

2022-07-13 15:54:14

Matplotlib圖表

2023-08-01 16:01:59

可視化Seaborn

2022-11-28 15:04:42

數(shù)據(jù)可視化工具

2022-05-30 08:37:34

可視化圖表項(xiàng)目開源

2022-08-23 12:32:37

Python可視化圖表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品分类| 91精品在线一区二区| 久久综合伊人77777麻豆最新章节| 国产成人午夜视频| 国产精品wwwww| 午夜不卡av免费| 欧美jizz18性欧美| 日韩精品免费视频| 欧美精品久久久久久久久久丰满| 欧美性猛xxx| 精品176二区| 亚洲欧洲日产国产网站| 看亚洲a级一级毛片| 日本免费一区二区三区视频观看| 一本一道久久a久久精品蜜桃| 国产精品手机在线| 国产精品综合在线视频| 色偷偷福利视频| 色婷婷综合五月| 在线看片国产福利你懂的| 欧美激情视频三区| 国产精品扒开腿做爽爽爽软件| 日韩中文字幕一区| 久久午夜色播影院免费高清 | 欧美三级黄网| 中文字幕免费国产精品| 在线观看中文| 久久福利网址导航| 国产精品久久久久9999赢消| 日韩在线导航| 中文字幕精品在线不卡| 在线看的av网站| 免费成人高清视频| 亚洲全部视频| 污版视频在线观看| 精品精品国产高清a毛片牛牛| 国产电影一区| 欧美综合激情| 亚洲精品成人悠悠色影视| 超碰在线公开| 91网免费观看| 国产精品日韩成人| 日韩精品极品| 亚洲精品免费一区二区三区| 成人一级片在线观看| 视频一区二区在线播放| 久久九九免费视频| 视频一区二区三区中文字幕| jizzjizzjizz亚洲女| 日韩高清欧美高清| 欧美一区二区三区久久精品茉莉花| www国产精品内射老熟女| 色噜噜狠狠色综合中国 | 久久视频精品在线| 在线观看日韩av电影| 国产aaa一级片| 777xxx欧美| 国产亚洲精品美女久久久久久久久久| 黄色一级片在线看| 欧美一区二区播放| 97视频热人人精品免费| 国产成人无码av在线播放dvd| 日韩视频免费观看高清在线视频| 精品视频免费在线观看| 无码精品国产一区二区三区免费| 亚洲国产精品美女| 一区在线视频观看| 91午夜在线| 欧美巨大黑人极品精男| 另类小说欧美激情| 亚洲成人三级| 国产精品自拍偷拍视频| 国产免费久久精品| 欧美性suv| 宅男av一区二区三区| 69精品人人人人| 91精品1区| 中文字幕中文字幕在线中文字幕三区 | 久久久久久久久成人| 樱花www成人免费视频| 欧美精品v国产精品v日韩精品 | 欧洲成人一区| 一本一道久久a久久综合精品| 91高清视频免费看| 亚洲最大黄网| 青春有你2免费观看完整版在线播放高清| 欧美日韩在线观看一区二区 | 欧产日产国产精品视频| 亚洲一区二区三区四区在线播放| 4438亚洲最大| 欧洲亚洲视频| 亚欧激情乱码久久久久久久久| 久久久av一区| 久久蜜桃av一区精品变态类天堂 | 欧美三级网址| 日本精品免费视频| 日韩精品黄色网| 日本伊人午夜精品| av毛片在线| 日韩免费一区二区三区| 91精品免费观看| 欧美亚洲三级| 福利写真视频网站在线| 日韩福利在线| 精品夜色国产国偷在线| 狠狠色综合色综合网络| 欧美1级2级| 欧美视频免费看欧美视频| 啊v视频在线一区二区三区| 成人av网站大全| 国产美女精品视频免费播放软件| 白嫩少妇丰满一区二区| 97精品国产97久久久久久| 亚洲综合网站在线观看| 91高清一区| 欧美aaaaaaa| 国产精彩视频一区二区| 欧美激情手机在线视频| 亚洲精品视频观看| 黄色另类av| 91九色国产社区在线观看| 欧美日韩三级视频| 久久99国产精品免费网站| 精品国产鲁一鲁****| 九色福利视频| 国内精品久久国产| 亚洲欧美一区二区三区情侣bbw| 久久久91精品国产一区二区三区| 亚洲精品国模| 国产午夜在线观看| 日韩一级免费看| 4k岛国日韩精品**专区| 日韩欧美主播在线| 3p视频在线观看| 欧美一区二区影视| 色七七影院综合| 亚洲无线码一区二区三区| a91a精品视频在线观看| 欧美成人免费电影| heyzo视频在线播放| 亲爱的老师9免费观看全集电视剧| 久久久久九九九| 久久久精品在线| 丁香五月缴情综合网| 亚洲精品少妇久久久久久| 欧美亚洲免费在线| 久久97超碰国产精品超碰| a成人v在线| 亚洲女优视频| 夜夜爽www精品| 欧美一乱一性一交一视频| 欧美日韩国产综合视频在线观看中文| 亚洲人成亚洲人成在线观看| 亚洲精品一区二三区不卡| 欧美aa在线观看| 午夜激情av在线| 蜜桃麻豆www久久国产精品| 日韩在线小视频| 精品国产91久久久久久| 紧缚捆绑精品一区二区| 黑丝美女一区二区| 成年女人在线看片| а√最新版地址在线天堂| gogogo免费高清日本写真| 国产精品日韩在线观看| 亚洲欧美国产另类| 狠狠干狠狠久久| 91视频.com| 国产亚洲午夜| 国产成人三级| 国产精品第一| 黄a在线观看| 亚洲精选av在线| 国产二区视频在线| 久久精品日产第一区二区三区乱码 | 日韩一区二区三区电影在线观看| 国产亚洲污的网站| 日韩不卡在线观看日韩不卡视频| 另类尿喷潮videofree| 超碰在线97国产| 一个人看的www一区| 成年人观看网站| 日韩在线电影一区| 97人摸人人澡人人人超一碰| 午夜精品99久久免费| 国产亚洲欧洲高清一区| 91麻豆精品国产91久久久使用方法| 一区二区在线观看免费| 91在线视频在线| 韩国精品视频| 99色精品视频| 日韩国产在线一区| 亚洲xxxxx性| 91av视频在线| 欧美成年人视频网站欧美| 日韩精品在线观看网站| 欧美一区2区视频在线观看| 天天色图综合网| 亚洲欧美另类久久久精品| 国产色91在线|