精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品18在线| 黄页网站大全在线观看| 在线观看中文字幕2021| 99久久精品网站| 欧美一区二区三区思思人| www.日本三级| 精品视频三区| 狠狠久久亚洲欧美| 97在线视频免费| 国产午夜精品福利视频| 视频免费一区二区| 91精品办公室少妇高潮对白| 日韩久久精品一区二区三区| 91精品国自产| 另类激情亚洲| 欧美裸体男粗大视频在线观看| 一二三不卡视频| 国产精品美女久久久久人| 欧美日韩精品在线观看| 波多野结衣三级在线| 欧美男男同志| 国产福利一区二区三区视频| 国产成人在线亚洲欧美| 国产在线观看免费视频今夜| 精品产国自在拍| 亚洲国产成人久久综合| 亚洲一二三不卡| 黄色激情在线播放| 一区二区三区精品| 一本久久a久久精品vr综合| 天堂在线中文网| 国产精品99久久久久久久女警| 国产精品福利在线| av大片在线免费观看| 国产精品99一区二区| 色久欧美在线视频观看| 国产黄色网址在线观看| 国产精品极品| 精品伦理精品一区| 搡的我好爽在线观看免费视频| 日韩高清在线| 欧美性高跟鞋xxxxhd| 国产a级片网站| 欧美78videosex性欧美| 亚洲精品美国一| 黄色免费高清视频| 一级日本在线| 国产精品欧美极品| 亚洲 日韩 国产第一区| 浮生影视网在线观看免费| 91热门视频在线观看| 国产一区二区三区奇米久涩 | 日韩影院免费视频| 欧美有码在线视频| 国产精品美女久久久久av爽| 伊人久久综合| 68精品久久久久久欧美| 欧美日韩综合在线观看| 亚洲久色影视| 7m精品福利视频导航| 国产精品xxxx喷水欧美| 国产精品免费看| 日本欧美国产在线| 日韩欧美国产另类| 免费在线成人网| 国产在线精品一区免费香蕉| 亚洲视频一区在线播放| 久久97超碰国产精品超碰| 国产主播精品在线| 国产婷婷在线视频| 成人精品视频一区二区三区尤物| 国产青春久久久国产毛片| 四虎精品一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 亚洲天堂手机版| 久久99精品久久久久久国产越南| 91麻豆桃色免费看| 亚洲第一天堂网| 不卡一区二区三区四区| 欧美一级二级三级九九九| 黄网在线观看| 综合电影一区二区三区| 少妇大叫太大太粗太爽了a片小说| 成人免费高清观看| 欧美性猛交xxxx久久久| 久久99999| 秋霞一区二区| 日韩精品在线视频美女| 最新日韩免费视频| 亚洲小说区图片区| 国产精品大片wwwwww| 国产精品高潮呻吟AV无码| 粉嫩欧美一区二区三区高清影视| 久久精品99久久| 天天在线视频色| 亚洲高清免费观看| 日本a√在线观看| 91成人午夜| 亚洲无限av看| 久久精品视频国产| 日韩av一区二| 国产一区二区高清视频| 五月香视频在线观看| 亚洲成av人片一区二区三区| 国产视频在线视频| 亚洲综合色婷婷在线观看| 国产亚洲精品久久久久久牛牛| 亚洲色图综合区| 视频一区欧美日韩| 国产精品免费观看高清| 在线a人片免费观看视频| 亚洲大片在线观看| 在线观看免费视频高清游戏推荐| 成人爽a毛片| 亚洲欧美日韩直播| 国产无码精品一区二区| 久久精品av麻豆的观看方式| 欧美lavv| gogo高清在线播放免费| 欧美精品一级二级| 实拍女处破www免费看| 欧美亚洲不卡| 91精品啪aⅴ在线观看国产| 你懂的免费在线观看| 亚洲综合色在线| 97超碰成人在线| 国产午夜一区| 欧美性做爰毛片| 丁香六月天婷婷| 亚洲美腿欧美偷拍| 天堂av2020| 欧美wwwww| 国产精品国产亚洲伊人久久| 五月婷婷在线播放| 亚洲乱码国产乱码精品精的特点| 一区二区三区视频在线观看免费| 婷婷精品在线| 97色在线播放视频| 免费国产精品视频| 亚洲黄色录像片| 深夜福利网站在线观看| 日韩精品久久| 国产日本欧美一区二区三区在线 | 国产l精品国产亚洲区久久| 日韩欧洲国产| 九九热r在线视频精品| 国产v片在线观看| 亚洲欧美另类久久久精品2019| 亚洲高清免费在线观看| 日韩精品一区二区三区免费观看 | 欧美精品三级在线| 久久久精品日本| 999精品国产| 亚洲精品一二三| 潘金莲一级淫片aaaaaaa| 中文字幕一区二区三区欧美日韩 | 天天干天天做天天操| 午夜视频一区二区| 亚洲中文字幕无码av| 羞羞答答国产精品www一本| 久久综合入口| 色成人免费网站| 色一区av在线| av网站在线免费看| 亚洲一二三区在线观看| 国产二级一片内射视频播放| 亚洲视频1区| 日韩电影大全在线观看| 深夜福利亚洲| 美女久久久久久久| 好男人www在线视频| 欧美日韩在线视频一区| 午夜精产品一区二区在线观看的| 日韩激情视频在线观看| eeuss中文| 成人爽a毛片| 国产精品99导航| 久cao在线| 亚洲电影免费观看| 亚洲中文字幕无码爆乳av| 国产精品久久久久影院亚瑟| 999热精品视频| 亚洲视频www| 亚洲第一页在线视频| 伊人久久亚洲| 91精品国产高清自在线看超| www.av在线播放| 精品日本一线二线三线不卡 | 欧美日韩不卡一区二区| 久草视频免费播放| 国产日韩高清在线| 国产xxx在线观看| 久久精品人人| 伊人再见免费在线观看高清版| 人体久久天天| 成人免费观看a| 性欧美18xxxhd| 超薄丝袜一区二区| 美国一级片在线免费观看视频 | 懂色av成人一区二区三区| 欧美午夜激情在线| 男人的天堂久久久| 欧美激情在线免费观看| 国产精品亚洲一区二区无码| 免费久久精品视频| 无罩大乳的熟妇正在播放| 欧美高清视频手机在在线| 激情小说网站亚洲综合网| 一级欧美视频| 国产成人精品免高潮在线观看| 少女频道在线观看免费播放电视剧| 亚洲另类图片色| 亚洲av综合色区无码一二三区| 欧美亚洲国产一区二区三区| 国产黄色片视频| 亚洲视频在线一区二区| 99精品欧美一区二区| 91在线视频在线| 国产乱国产乱老熟300部视频| 日本强好片久久久久久aaa| 国产精品无码av在线播放| 欧美二区不卡| 在线观看福利一区| 不卡一区2区| 欧美午夜免费| 久9re热视频这里只有精品| 7777精品久久久大香线蕉小说| 九九热线视频只有这里最精品| 91精品国产91久久久久久不卡 | 99精品在线观看| 欧美日韩大片一区二区三区| 超碰成人免费| 成人综合av网| 亚洲国产中文在线二区三区免| 国产在线精品一区免费香蕉 | 日本不卡一二三区| 五月天亚洲色图| 精品视频免费观看| 久久亚洲道色| 韩国精品一区二区三区六区色诱| 日本一区二区三区电影免费观看| 国产中文字幕亚洲| 2020国产精品小视频| 国产综合久久久久久| 久久亚洲人体| 成人免费看片视频| 久久在线观看| 99久久国产免费免费| 欧美区一区二区| 高清视频一区二区三区| www.豆豆成人网.com| 国产区一区二区三区| 麻豆一区二区麻豆免费观看| 国产中文一区二区| 羞羞色国产精品网站| 欧美理论一区二区| 欧美日韩第一| 中文字幕精品一区日韩| 亚洲精品小说| 老子影院午夜伦不卡大全| 亚洲精品资源| 久久久久久久久久久久久国产精品 | 成人台湾亚洲精品一区二区| 国产麻豆乱码精品一区二区三区 | 久久精品视频导航| 在线观看中文字幕的网站| 欧美夫妻性视频| 色多多在线观看| 国产精品日本精品| 欧美成人精品午夜一区二区| 国产精品国产精品国产专区不卡| 综合激情网...| 蜜桃久久影院| 国产精品久久久久久麻豆一区软件| 在线观看污视频| 亚洲日本国产| 国产九九在线视频| 国产美女精品人人做人人爽| 日韩女优在线视频| 久久看人人爽人人| 亚洲 欧美 变态 另类 综合| 夜夜精品视频一区二区| 中文字幕免费在线观看视频| 欧美日韩精品一区二区| 韩国av电影在线观看| 国产亚洲欧洲在线| 欧美性受ⅹ╳╳╳黑人a性爽| 欧美一性一乱一交一视频| 久久久加勒比| 国产一区二区三区高清| 日韩理论电影大全| 国产人妻777人伦精品hd| 秋霞午夜鲁丝一区二区老狼| 91精产国品一二三| 国产日韩欧美精品在线| 久久艹精品视频| 欧美网站一区二区| 欧洲精品久久一区二区| 最近2019年日本中文免费字幕| sm在线观看| 国产精品一区二区三区久久久| 国产精品色呦| 在线观看精品视频| 久久一区视频| 深田咏美中文字幕| 中文字幕一区二区三区精华液 | 欧美另类变人与禽xxxxx| 日韩有码第一页| 久久亚洲电影天堂| 中文字幕日本一区二区| 国产一区二区在线网站| 91精品亚洲| 爱情岛论坛vip永久入口| hitomi一区二区三区精品| 亚洲一级二级片| 91精品办公室少妇高潮对白| 天天综合在线视频| 欧美福利视频在线| 精品一区二区三区免费看| 色噜噜一区二区| 美女诱惑一区| 水蜜桃av无码| 一区二区久久久久| 99久久免费国产精精品| 伊人一区二区三区久久精品| 天堂中文在线播放| 国产一区精品视频| 欧美日韩专区| 一卡二卡三卡四卡五卡| 中文字幕亚洲视频| 波多野结衣二区三区| 精品香蕉一区二区三区| 17videosex性欧美| 国产精品一区二区三区四区五区| 欧美一区二区三区久久精品茉莉花| 国产精品视频中文字幕| 中文一区二区完整视频在线观看| 日韩中文字幕在线观看视频| 亚洲精品一区二区久| 在线视频cao| 久久青青草原一区二区| 夜夜夜久久久| 久久人人爽人人爽人人片| 欧美日韩国产精品| 天天摸天天碰天天爽天天弄| 国内精品久久久久| 国产毛片精品| 波多野结衣家庭教师在线播放| 99久久伊人久久99| 天天操天天爽天天干| 日韩成人在线电影网| 性欧美18~19sex高清播放| 蜜桃免费一区二区三区| 日韩在线一二三区| 亚洲一二三四五六区| 91精品国产综合久久香蕉麻豆| 男人影院在线观看| 亚洲a∨日韩av高清在线观看| 欧美国产综合| 污网站免费观看| 精品久久久一区| 国产在线免费观看| 国产日韩av高清| 欧美一区精品| 男人网站在线观看| 日韩欧美精品网址| yes4444视频在线观看| 91精品久久久久久久久久久| 女主播福利一区| 波多野结衣先锋影音| 色综合 综合色| 蜜桃视频网站在线| 国产91aaa| 视频一区二区国产| 国产日产精品一区二区三区的介绍| 在线不卡一区二区| av免费不卡| 亚洲第一导航| 国产a级毛片一区| 九九精品免费视频| 久久伊人免费视频| 婷婷精品在线观看| 国产一级片自拍| 亚洲va天堂va国产va久| 国产精品视频一区二区久久| 成人夜晚看av| 亚洲一区国产| 小泽玛利亚一区二区免费| 日韩av在线资源| 羞羞视频在线观看一区二区| 国产二区视频在线| 国产精品免费久久| 日韩专区第一页| 91精品国产综合久久久久久久久| 黄色亚洲精品| 欧美色图17p| 亚洲精品一区二区久| 亚洲一区二区三区在线免费| 一级黄色香蕉视频| 午夜精品一区二区三区电影天堂|