利用ECharts实现winform中的可视化图表

这篇具有很好参考价值的文章主要介绍了利用ECharts实现winform中的可视化图表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

如今web端的图表可以说是非常丰富且用起来方便,ECharts已经非常成熟了,如果在winform中使用那就太好了。

思路

使用winfrom程序封装一个web控件,然后进行展示就可以了,说干就干!

第一步(先搞一个能展示图表的html文件)

按照ECharts官网搞了一个折线图,效果如下
利用ECharts实现winform中的可视化图表

第二步(封装到winform中)

这里重点强调一下,不要使用webBrowser,因为这个东西的引擎导致一些渲染有问题

引入Web.View2

 <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.1722.45" />

在winfrom的工具箱中就能看到控件了

利用ECharts实现winform中的可视化图表

第三步 写代码

在窗体加载后,将webview的url给到指定的html文件就可以了
我这个放在根目录了

  private void Form1_Load(object? sender, EventArgs e)
        {
            webView21.Source = new Uri(AppDomain.CurrentDomain.BaseDirectory + "line_chart.html");

        }

到此一切都挺好,能正常显示了。但是不能交互。

第四步 winfrom与html交互

在html中增加方法 如下

 function LoadData(data) {
            myChart.setOption({
                series:  data
            });
        }

html的完整代码如下

<!--
    此示例下载自 https://echarts.apache.org/examples/zh/editor.html?c=dynamic-data2
-->
<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">
<head>
    <meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">
    <div id="container" style="height: 100%"></div>


    <script type="text/javascript" src="echarts.min.js"></script>
   

    <script type="text/javascript">
        var dom = document.getElementById('container');
        var myChart = echarts.init(dom, null, {
            renderer: 'canvas',
            useDirtyRect: false
        });
        var app = {};

        var option;

       
        option = {
            title: {
                text: '这是一个测试数据'
            },
            tooltip: {
                trigger: 'axis',
                
                axisPointer: {
                    animation: true
                }
            },
            xAxis: {
                type: 'category',
                splitLine: {
                    show: false
                }
            },
            yAxis: {
                type: 'value',
                boundaryGap: [0, '100%'],
                splitLine: {
                    show: false
                }
            },
            dataZoom: [{
                type: 'slider',//图表下方的伸缩条
                show: true, //是否显示
                realtime: true, //拖动时,是否实时更新系列的视图
                start: 0, //伸缩条开始位置(1-100),可以随时更改
                end: 100, //伸缩条结束位置(1-100),可以随时更改
            }],
            toolbox: {
                show: true,
                feature: {
                    dataZoom: {
                        yAxisIndex: "none"
                    }
                }
            },
            series: [
            ]
        };
        

        if (option && typeof option === 'object') {
            myChart.setOption(option);
        }

        window.addEventListener('resize', myChart.resize);

       
        function LoadData(data) {
            myChart.setOption({
                series:  data
            });
        }

    </script>
</body>
</html>

在winfrom中增加调用方法

  private void toolStripLabel1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "*.data|*.data";
            openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
            openFileDialog.ShowDialog();
            if (string.IsNullOrEmpty(openFileDialog.FileName)) return;
            var s = File.ReadAllText(openFileDialog.FileName);
            var js = $"let dd = {s};" +
                $"LoadData(dd);";
            webView21.CoreWebView2.ExecuteScriptAsync(js);
        }

数据文件代码

[
  {
    "name": "测试数1",
    "type": "line",
    "showSymbol": false,
    "data": [
      [ "a", 1 ],
      [ "b", 2 ],
      [ "c", 3 ],
      [ "d", 4 ],
      [ "e", 5 ],
      [ "f", 6 ],
      [ "h", 7 ],
      [ "i", 8 ],
      [ "j", 9 ],
      [ "k", 10 ]
    ]
  },
  {
    "name": "测试数2",
    "type": "line",
    "showSymbol": false,
    "data": [
      [ "a", 10 ],
      [ "b", 20 ],
      [ "c", 30 ],
      [ "d", 40 ],
      [ "e", 50 ],
      [ "f", 60 ],
      [ "h", 70 ],
      [ "i", 80 ],
      [ "j", 90 ],
      [ "k", 10 ]
    ]
  }

]

完整的运行效果

利用ECharts实现winform中的可视化图表文章来源地址https://www.toymoban.com/news/detail-436170.html

到了这里,关于利用ECharts实现winform中的可视化图表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ECharts配合Node.js爬虫实现数据可视化

    可视化技术是将数据和信息以图形化的方式展示出来,以便更好地理解和分析。可视化技术通常使用各种图表、图形、动画和交互式效果来呈现数据。可视化技术有以下几个基本概念: 数据:可视化技术的基础是数据。数据可以是数字、文本、图片、视频等形式。数据可以通

    2024年02月11日
    浏览(37)
  • vue-使用echarts+echarts-gl实现某个省份地区地图3d可视化

    前言 最近在开发中遇到一个需求,需要把一个地区地图变成3d感觉悬浮在大屏中间配合业务需求 其实echarts配合三方库就可以实现这个效果,具体细节需要自己调整 代码实现 1.下载各省份各地区地图数据-json文件-根据需求下载对应地图json数据引入即可 最新全国地图JSON数据

    2024年01月20日
    浏览(46)
  • echarts地图 可视化大屏使用echarts-map实现地图轮播效果

    记录一下大屏开发中使用到的echartsMap 大屏的页面根据需求前前后后改了几个版本了,地图的样式也改了又改 这里记录一下,因为echarts属性用到的比较多也比较杂,防止以后需要用到忘记了 初始效果 效果图: 适应大屏风格的发光地图效果,用了两个图层实现叠加背景图片实

    2024年02月16日
    浏览(31)
  • Python flask + Mysql +Echarts :实现数据可视化(玫瑰图)

    步骤一:建立Myslq数据库连接 步骤二:开发Flask应用 步骤三:创建前端页面(house_bing.html ) 步骤四:运行Flask应用并查看玫瑰图 render_template():调用了”render_template()”方法来渲染模板。方法的第一个参数”echarts.html”指向你想渲染的模板名称,第二个参数”data”是你要传

    2024年02月22日
    浏览(35)
  • Flask+echarts爬取天气预报数据并实现可视化

    右键新建一个crawl.py文件,代码如下,将爬取到的数据存储到tianqi.txt文件中, 右键新建一个flask01.py的文件,对爬取到的数据进行读取,并转换为列表类型,传递给index.html页面,echarts的图表样例负责接收并渲染,代码如下, 在根目录下,新建一个名为templates目录,该目录名

    2024年02月11日
    浏览(31)
  • Selenium + Django + Echarts 实现亚马逊商品数据可视化爬虫项目

    最近完成了1个爬虫项目,记录一下自己的心得。 根据用户输入商品名称、类别名称,使用Selenium, BS4等技术每天定时抓取亚马逊商品数据,使用Pandas进行数据清洗后保存在MySql数据库中. 使用Django提供用户端功能,显示商品数据,以可视化的方式分析数据,以及数据抓取任务管

    2024年01月25日
    浏览(36)
  • 关于微信小程序中如何实现数据可视化-echarts动态渲染

    移动端设备中,难免会涉及到数据的可视化展示、数据统计等等,本篇主要讲解原生微信小程序中嵌入 echarts 并进行动态渲染,实现数据可视化功能。 基础使用 首先在 GitHub 上下载 echarts 包 地址:https://github.com/ecomfe/echarts-for-weixin/tree/master 下载项目 解压压缩包,将 ec-canva

    2024年01月25日
    浏览(37)
  • 记录--手把手教你Vue+ECharts+高德地图API实现天气预报数据可视化

    所谓数据可视化,我们可以理解为从宏观角度来看一眼就能看出来整个数据的占比,走向。对于数据可视化,很多互联网公司是很看重这一块的,包括大厂;就比如阿里的淘宝,双十一的时候往往就需要将消费者的一些数据通过图的形式展现出来。接下来我们就来实现一个天

    2024年02月07日
    浏览(51)
  • Echarts数据可视化 第4章 Echarts可视化图 4.10 热力图

    Echarts数据可视化 Echarts数据可视化:入门、实战与进阶 第4章 Echarts可视化图 4.10 热力图 热力图是一种密度图,使用不同颜色和不同颜色深浅程度来表示数据量的区别。 举个栗子 渲染效果 解释一下这个图 其中横轴代表小时,纵轴表示星期几,图中不同颜色的区块代表了数据

    2024年02月14日
    浏览(37)
  • 利用大数据分析工具,实现多场景可视化数据管理

    https://yanhuang.yuque.com/staff-sbytbc/rb5rur? 购买服务器 购买腾讯云服务器,1300 元新人价,一年时间 ●4核16G内存 ●CentOS 6.7 (补充说明:最新的 2.7.1 GA 版本,8G 内存也是可以跑的,可以先使用8G,不够再做升级)。 安装docker环境 安装docker,速度还挺快的,大概3~5分钟内 1、注册鸿

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包