精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

在 Blazor 中使用 Chart.js 快速創建數據可視化圖表

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

前言

BlazorChartjs 是一個在 Blazor 中使用 Chart.js 的庫(支持Blazor WebAssembly和Blazor Server兩種模式),它提供了簡單易用的組件來幫助開發者快速集成數據可視化圖表到他們的 Blazor 應用程序中。本文我們將一起來學習一下在 Blazor 中使用 Chart.js 快速創建數據可視化圖表。

Blazor是什么?

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

創建Blazor WebAssembly應用

創建名為ChartjsExercise的Blazor WebAssembly應用:

圖片圖片

圖片圖片

圖片圖片

安裝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文件并添加以下內容:

@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

圖片圖片

柱狀圖

創建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 }
        };
    }

展示效果

圖片

餅圖

創建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 = "數據集",
                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 };
    }

展示效果

圖片圖片

折線圖

創建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 = "數據集",
                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 };
    }

展示效果

圖片圖片

配置菜單導航欄

在組件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;
    }
}

更多圖表效果截圖

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

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片圖片

圖片 圖片

責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2022-08-30 23:40:32

JavaScrip圖表Chart.js

2021-04-09 10:42:03

數據可視化框架大數據

2021-10-11 08:04:22

Python數據行程

2023-06-11 16:12:14

數據可視化圖表類型

2023-12-18 15:02:00

PyechartsPython數據可視化工具

2020-03-01 14:01:22

Echarts數據可視化圖表

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

可視化圖表數據

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2015-08-20 10:00:45

可視化

2017-10-14 13:54:26

數據可視化數據信息可視化

2014-05-28 15:23:55

Rave

2022-06-29 10:58:51

軟件遷移學習

2023-08-01 16:01:59

可視化Seaborn

2022-07-13 15:54:14

Matplotlib圖表

2022-11-28 15:04:42

數據可視化工具

2022-05-30 08:37:34

可視化圖表項目開源

2024-05-22 16:03:49

點贊
收藏

51CTO技術棧公眾號

日韩激情视频网站| 成人爽a毛片免费啪啪红桃视频| 久久久青草青青国产亚洲免观| 久久久久久久久久av| 污污内射在线观看一区二区少妇| 性xxxxfreexxxxx欧美丶| www激情久久| 成人黄色免费看| 亚洲熟女www一区二区三区| 国产精品极品在线观看| 狠狠久久亚洲欧美专区| 欧美日韩精品免费观看| 91精品中文字幕| 婷婷综合久久| 日韩电影中文 亚洲精品乱码| 精品久久久久av| 操你啦视频在线| 91亚洲精品久久久蜜桃| 国产日韩av高清| 久久视频免费看| 成人同人动漫免费观看 | 成人激情视频网站| 国产精品成人一区二区三区吃奶| 一本一本久久a久久| jizz18欧美18| 欧美日韩精品一区二区三区蜜桃 | 亚洲qvod图片区电影| 国产精品黄色网| 久久精品亚洲人成影院| 精品亚洲一区二区三区在线播放 | 一区二区三欧美| 欧美久久久久久久久久久| 国产福利亚洲| 日韩欧美亚洲成人| 少妇大叫太大太粗太爽了a片小说| 你懂的视频在线观看| 成人免费视频app| 国产日韩欧美在线| 成人黄色免费网| 亚洲国产专区校园欧美| 久久精品视频在线播放| 亚洲精品成人无码| 欧美调教视频| 精品1区2区在线观看| 国产5g成人5g天天爽| 欧美舌奴丨vk视频| 精品国产精品三级精品av网址| 午夜久久久久久久久久久| 国产69精品久久app免费版| 99国产精品久| 久久精品国产综合精品| 丰满肥臀噗嗤啊x99av| 久久99国产精品久久| 国产精品久久99久久| 国产成人无码av| 亚洲综合精品| 欧美亚洲免费电影| 国产三级精品三级在线观看| 国产欧美欧美| 97国产精品人人爽人人做| 黄色小说在线观看视频| 欧美午夜影院| 日韩视频免费看| 伊人久久久久久久久久久久久久| 久久激情电影| 久久精品在线播放| xxxx日本少妇| 亚洲视频狠狠| 韩国三级电影久久久久久| 国产在线成人精品午夜| 最新国产拍偷乱拍精品| 91精品国产一区| 黑人精品无码一区二区三区AV| 久久国产福利| 国产精品人成电影在线观看| 亚洲天堂免费av| 国产在线精品一区二区不卡了| 成人欧美一区二区三区黑人| 99久久久久久久| 丁香婷婷深情五月亚洲| 狠狠色狠狠色综合人人| 欧美日本韩国一区二区| 欧美国产丝袜视频| 日本一级淫片演员| 欧洲成人综合网| 天天色图综合网| 成人亚洲视频在线观看| 日韩三区四区| 精品99一区二区三区| av网站免费在线播放| 日本道不卡免费一区| 久久久91精品国产| 男女视频免费看| 日日嗨av一区二区三区四区| 成人在线播放av| 欧美 中文字幕| 国产亚洲精品免费| 欧美爱爱视频网站| 国产美女高潮在线观看| 在线一区二区三区四区五区| 国产精品久久久久久9999| 国产日韩三级| 中文字幕在线国产精品| 久久高清无码视频| 日韩中文欧美在线| 国产视频在线观看一区| aⅴ在线视频男人的天堂| 亚洲精品日韩一| 国产精品无码一区二区在线| 欧美韩国日本| 日韩大片免费观看视频播放| 91麻豆精品久久毛片一级| 女人色偷偷aa久久天堂| 日本午夜精品理论片a级appf发布| 国产精品系列视频| 久久伊人蜜桃av一区二区| 艳母动漫在线免费观看| 在线看的毛片| 欧美xingq一区二区| 毛片aaaaaa| 国产精品久久久一区二区| 成人激情春色网| 美女毛片在线看| 亚洲永久精品大片| 欧美成人三级在线播放| 日韩系列在线| 久久久久久av| 99久久久久成人国产免费| 国产农村妇女毛片精品久久麻豆| 成人短视频在线观看免费| 欧美日韩五区| 亚洲精品福利视频| 国产免费无码一区二区视频| 免费不卡在线视频| 蜜桃av噜噜一区二区三区| 污污影院在线观看| 欧美顶级少妇做爰| аⅴ天堂中文在线网| 亚洲欧美视频一区二区三区| 99国精产品一二二线| 日韩精品黄色| 欧美亚洲综合在线| 中文字幕免费高清| 久久国产精品毛片| 麻豆精品传媒视频| 玖玖在线播放| 亚洲福利小视频| 久久精品这里只有精品| 国内久久精品视频| 欧美亚洲视频一区| 日韩黄色三级| 中文字幕日韩视频| 亚洲视频久久久| 国产精品色眯眯| 亚洲 欧美 另类人妖| 欧美手机在线| 国产精品精品久久久久久| 国产在线观看精品一区| 色诱视频网站一区| 亚洲人成人无码网www国产| 另类av一区二区| 欧美人xxxxx| 日韩高清中文字幕一区二区| 亚洲欧美国产视频| 国产黄色免费视频| 中文字幕高清不卡| 玖玖爱视频在线| 一区二区三区网站| 成人羞羞视频免费| 免费一二一二在线视频| 精品一区精品二区| 波多野结衣一二区| 国产精品国产自产拍高清av王其| 成人性生交免费看| 欧美在线高清| 黑人中文字幕一区二区三区| 欧美黑人粗大| 色琪琪综合男人的天堂aⅴ视频| 亚洲综合一区中| 一区二区三区在线视频观看58| 99免费观看视频| 麻豆久久精品| 中文字幕一区二区三区精彩视频| 清纯唯美激情亚洲| 51ⅴ精品国产91久久久久久| 国产69久久| 欧美tk—视频vk| 国产成人在线视频观看| 亚洲国产高清在线| 国产精品igao网网址不卡| 在线欧美福利| 欧美日韩综合精品| 国产专区精品| 97不卡在线视频| 色开心亚洲综合| 欧美成人三级电影在线| 国产稀缺真实呦乱在线| 久久久综合九色合综国产精品| 国产色视频在线播放| 精品成人免费| 亚洲国产精品视频一区| 亚洲成人五区| 国产精品第一第二| 日本性爱视频在线观看| 亚洲视频999| 精品人妻一区二区三区麻豆91| 色综合天天综合网天天狠天天 | www.激情五月.com| 日本高清不卡视频| 久久久久久久极品内射| 中文乱码免费一区二区| 四季av综合网站| 国产一区二区三区黄视频 | 精品国产一区二区三区四区vr| 国产成人精品123区免费视频| 欧美激情免费观看| 天天综合视频在线观看| 日韩电影免费观看中文字幕| 国产av一区二区三区| 色94色欧美sute亚洲线路一久 | 精品久久久久久久久中文字幕| 成年人免费视频播放| 久久久久久久久久美女| 午夜xxxxx| 久久综合图片| 国产www免费| 在线电影一区二区| 亚洲第一在线综合在线| 丝袜美腿一区二区三区动态图| 91福利入口| 伊人久久大香伊蕉在人线观看热v| 国产www精品| 福利在线免费视频| 久久久久久香蕉网| 日日夜夜天天综合入口| 久久亚洲国产精品成人av秋霞| 超碰免费在线观看| 亚洲精品资源美女情侣酒店| 隣の若妻さん波多野结衣| 日韩欧美高清一区| 国产人妖一区二区| 69堂亚洲精品首页| 亚洲天堂久久久久| 欧美久久久影院| 伊人成人在线观看| 欧美色综合天天久久综合精品| 亚洲国产成人无码av在线| 大伊人狠狠躁夜夜躁av一区| 免费视频一二三区| 亚洲一区二区三区免费视频| 五月天婷婷色综合| 一级中文字幕一区二区| 免费一级片视频| 亚洲午夜免费视频| 日韩三级视频在线| 激情成人在线视频| 国产精品自拍99| 精品人伦一区二区三区蜜桃网站| 国产a∨精品一区二区三区仙踪林| 午夜精品久久久久久| 日本熟伦人妇xxxx| 精品国产91久久久久久| 日本视频网站在线观看| 欧美性高清videossexo| 在线视频 91| 欧美一级欧美三级在线观看 | 国产一区二区在线观看视频| 手机av在线网站| 成人一道本在线| 免费黄色三级网站| 国产日韩av一区二区| 三级黄色录像视频| 亚洲午夜三级在线| 午夜精品一区二| 欧美日韩国产乱码电影| 精品久久久久成人码免费动漫| 精品福利视频一区二区三区| 天堂在线中文| 中文字幕日韩欧美在线| 欧美黄色视屏| 国产成人亚洲综合| 精品国产一级| 国外成人免费视频| 日韩电影免费网站| 9色porny| 久久蜜桃资源一区二区老牛| 亚洲一级片av| 99久久婷婷国产综合精品电影 | 韩国精品久久久999| 六月婷婷综合| 成人国产亚洲精品a区天堂华泰| 丁香一区二区| 亚洲国产一区二区精品视频 | 91视频一区二区| av在线播放中文字幕| 亚洲第一搞黄网站| 中文天堂在线播放| 亚洲第一天堂无码专区| 在线激情免费视频| 久久人人爽人人爽人人片av高请| 亚洲四虎影院| 国产伦视频一区二区三区| 日韩精品不卡一区二区| 国产美女网站在线观看| 精品在线播放午夜| 久久久无码人妻精品一区| 一区二区在线观看免费| 亚洲 欧美 中文字幕| 精品国产网站在线观看| av网页在线| 91国产美女视频| 亚洲天堂网站| 欧美福利一区二区三区| 国产综合自拍| 波多野结衣国产精品| 久久综合国产精品| 久草网视频在线观看| 欧美人狂配大交3d怪物一区| 色吊丝在线永久观看最新版本| 欧美成人亚洲成人日韩成人| 自拍偷自拍亚洲精品被多人伦好爽| 国产精品制服诱惑| 亚洲精品国产成人影院| 国产一级特黄a大片免费| av在线不卡观看免费观看| 青娱乐国产盛宴| 69成人精品免费视频| 国产在线资源| 欧美亚洲国产日韩2020| 欧美成人专区| 大伊香蕉精品视频在线| 国产乱子伦视频一区二区三区| 免费黄在线观看| 91久久精品国产91性色tv| 午夜视频在线免费播放| 欧美激情欧美激情| 久久久久久亚洲精品美女| 国产精品h视频| 黑人巨大精品欧美黑白配亚洲| 手机av在线不卡| 欧美亚洲高清一区二区三区不卡| 可以免费看污视频的网站在线| 18性欧美xxxⅹ性满足| 欧美大胆a级| 奇米精品一区二区三区| 99国产精品国产精品毛片| a v视频在线观看| 亚洲精品动漫久久久久| 日韩精品美女| 欧美日韩成人一区二区三区| 亚洲在线播放| 男人天堂av电影| 91福利精品视频| yiren22亚洲综合伊人22| 国产精品麻豆va在线播放| 日韩欧美1区| 亚洲天堂av一区二区| 亚洲欧洲av另类| av无码精品一区二区三区宅噜噜| 欧美乱大交xxxxx另类电影| 日韩精品三级| 日韩av新片网| 91亚洲精品久久久蜜桃| 久久精品偷拍视频| 日韩在线视频观看| 欧美中文高清| 久色视频在线播放| 国产亚洲精品福利| 一级aaaa毛片| 高清在线视频日韩欧美| 人人精品亚洲| 男女污污的视频| 日韩美女久久久| 色wwwwww| 国产va免费精品高清在线观看| 色琪琪久久se色| 4438x全国最大成人| 欧美日韩午夜剧场| 午夜不卡视频| 国产高清自拍一区| 日韩黄色片在线观看| 一区二区国产精品精华液| 精品精品国产高清一毛片一天堂| 在线天堂资源| 国产又黄又爽免费视频| 99精品偷自拍| 夜夜爽8888| 久久人人爽人人爽人人片av高请 | 亚洲欧洲一区二区福利| 国产老肥熟一区二区三区| xxxx.国产| 久热99视频在线观看| 亚洲免费毛片| www.偷拍.com| 日本福利一区二区| 欧洲精品二区| 亚洲精品视频一二三| www.亚洲人| 国产又粗又大又爽视频| 69视频在线免费观看|