SunnyUI 学习1.3——图表

3 篇文章 24 订阅
2 篇文章 0 订阅

1 简介

  • UIBarChart
  • UIBarChartEx
  • UIDoughnutChat
  • UILineChart
  • UIPieChart

2 UIBarChart

  • 柱状图,与Echart的用法类似
  • 可以修改主题颜色
    • barChart.ChartStyleType = UIChartStyleType.Default;//默认颜色
    • barChart.ChartStyleType = UIChartStyleType.Plain; // Plain型
    • BarChart.ChartStyleType = UIChartStyleType.Dark; // 黑色
      在这里插入图片描述
  • 下面提供一个使用的案例
  • 我们其实只关注以下几件事
    • 如何初始化?有哪些配置信息?
    • 如何动态更新?
using Sunny.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace BarChartLearn
{
    public partial class Form1 : Form
    {
        private UIBarOption option;
        public Form1()
        {
            InitializeComponent();
            // 配置参数
            option = new UIBarOption();
            // 配置标题
            option.Title = new UITitle();
            // 主标题
            option.Title.Text = "SunnyUI";
            // 副标题
            option.Title.SubText = "BarChart";

            // 设置图例
            option.Legend = new UILegend();
            // 图例水平布局
            option.Legend.Orient = UIOrient.Horizontal;
            // 图例放置在左上角
            option.Legend.Top = UITopAlignment.Top;
            option.Legend.Left = UILeftAlignment.Left;
            // 两个图例分别是Bar1和Bar2
            option.Legend.AddData("Bar1");
            option.Legend.AddData("Bar2");

            // 设置系列
            UIBarSeries series = new UIBarSeries();
            // 第一系列Bar1
            series.Name = "Bar1";
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            option.Series.Add(series);

            // 设置第二系列Bar2
            series = new UIBarSeries();
            series.Name = "Bar2";
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            series.AddData(1.1);
            option.Series.Add(series);

            // 设置横坐标内容
            // 第一系列和第二系列的元素交织分布
            // 所以Mon是指第一和二系列的第一个元素的横坐标
            // Tue指第一和二系列的第二个元素的横坐标
            option.XAxis.Data.Add("Mon");
            option.XAxis.Data.Add("Tue");
            option.XAxis.Data.Add("Wed");
            option.XAxis.Data.Add("Thu");
            option.XAxis.Data.Add("Fri");

            // 辅助ToolTip是否可见
            option.ToolTip.Visible = true;
            // Y轴的刻度
            option.YAxis.Scale = true;
            // XY轴的单位
            option.XAxis.Name = "日期";
            option.YAxis.Name = "数值";
            // 标记处上下限(数值超过了也没事)
            option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Red, Name = "上限", Value = 12 });
            option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Gold, Name = "下限", Value = -20 });
            // 更新坐标轴
            BarChart.SetOption(option);
        }

        private void bt1_Click(object sender, EventArgs e)
        {
            
        }

        private void bt2_Click(object sender, EventArgs e)
        {
            // 更新数据
            UIBarSeries serie = option.Series[0];
            List<double> datasList = serie.Data;
            double[] datas = datasList.ToArray();
            serie.Clear();
            for (int i=0;i<datas.Length;i++)
            {
                datas[i] += (i+1)*1.1;
                // 没有提供直接修改的方法,所以要清空后,再将新的数据重新装入
                serie.AddData(datas[i]);
            }
            option.Series[0] = serie;
            // 更新
            BarChart.SetOption(option);
        }
    }
}

3 LineChart

  • 画折线图
    • 可以修改主题颜色
    • lineChart.ChartStyleType = UIChartStyleType.Default;//默认颜色
    • lineChart.ChartStyleType = UIChartStyleType.Plain; // Plain型
    • lineChart.ChartStyleType = UIChartStyleType.Dark; // 黑色
      在这里插入图片描述
using Sunny.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LineChartLearn
{
    public partial class Form1 : Form
    {
        private UILineOption option;
        public Form1()
        {
            InitializeComponent();

            // 配置LineChart
            option = new UILineOption();
            option.ToolTip.Visible = true;
            // 设置标题
            option.Title = new UITitle();
            option.Title.Text = "SunnyUI";
            option.Title.SubText = "LineChart";

            // 横坐标数据类型
            option.XAxisType = UIAxisType.Value;

            // 设置系列1
            var series = option.AddSeries(new UILineSeries("Line1"));
            float[] x = { 1, 2, 3, 4, 5, 6, 7 };
            float[] y = { 2, 4, 6, 8, 10, 12, 14 };
            for(int i=0;i<x.Length;i++)
            {
                series.Add(x[i], y[i]);
            }
            // 点的图标
            series.Symbol = UILinePointSymbol.Square;
            // 图标大小
            series.SymbolSize = 4;
            // 折线宽度
            series.SymbolLineWidth = 2;
            // 图标颜色
            series.SymbolColor = Color.Red;


            // 设置系列2
            series = option.AddSeries(new UILineSeries("Line2", Color.Lime));
            
            float[] x2 = { 1, 2, 3, 4, 5, 6, 7 };
            float[] y2 = { 3, 6, 9, 12, 15, 18, 21 };
            for (int i = 0; i < x.Length; i++)
            {
                series.Add(x2[i], y2[i]);
            }
            // 点的图标
            series.Symbol = UILinePointSymbol.Star;
            // 图标大小
            series.SymbolSize = 4;
            // 折线宽度
            series.SymbolLineWidth = 2;
            // 折线颜色
            series.SymbolColor = Color.Red;
            // 平滑曲线
            series.Smooth = true;

            // 设置纵坐标上限红线
            option.GreaterWarningArea = new UILineWarningArea(3.5);
            // 设置纵坐标下线黄线
            option.LessWarningArea = new UILineWarningArea(2.2, Color.Gold);
            option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Red, Name = "上限", Value = 3.5 });
            option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Gold, Name = "下限", Value = 2.2 });

            // 横坐标名称
            option.XAxis.Name = "事件";
            // 纵坐标名称
            option.YAxis.Name = "数值";
            option.XAxis.AxisLabel.DateTimeFormat = DateTimeEx.DateTimeFormat;
            // 设置竖向的红线
            option.XAxisScaleLines.Add(new UIScaleLine() { Color = Color.Red, Name = "x上界", Value = 50 });
            option.XAxisScaleLines.Add(new UIScaleLine() { Color = Color.Red, Name = "x下界", Value = -50 });
            // 更新配置
            LineChart.SetOption(option);
        }

        private void uiButton1_Click(object sender, EventArgs e)
        {
            // 更新数据
            // 注意,两个系列的长度不要差太多,否则会抛出内存溢出的异常
            UILineSeries serie = option.Series["Line1"];
            // 添加5个点
            for (int i=0;i<5;i++)
            {
                double newX = serie.XData[serie.XData.Count - 1] *1.5;
                double newY = serie.XData[serie.YData.Count - 1] * 1.5;
                serie.Add(newX, newY);
            }
            option.Series["Line1"] = serie;
            LineChart.SetOption(option);
        }
    }
}
  • 9
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
SunnyUI.Net 是基于.Net Framework 4.0+、.Net Core3.1、.Net 5 框架的 C# WinForm 开源控件库、工具类库、扩展类库、多页面开发框架。 源码编译环境:VS2019 16.8+,.Net5,.Net Core3.1 动态库应用环境:VS2010及以上,.Net Framework 4.0及以上(不包括.Net Framework 4 Client Profile),.Net Core 3.1,.Net 5.0 推荐通过Nuget安装:Install-Package SunnyUI,或者通过Nuget搜索SunnyUI安装。 软件介绍: 1、开源控件库 基于.Net Framework4.0,原生控件开发,参考 Element主题风格,包含 按钮、编辑框、下拉框、数据表格、工控仪表、统计图表在内的常用控件超过 50 个,满足常规开发需求,每个控件都精雕细琢,注重细节; 包含 Element 风格主题 11 个,其他主题 6 个,包含主题管理组件 UIStyleManager,可自由切换主题。 2、工具库 收集整理开发过程中经常用到的工具类库。 3、扩展库 收集整理开发过程中经常用到的扩展类库。 4、多页面框架 参考Element,包括7种常用框架风格,只需几行简单的代码即可创建多页面程序,其支撑组件包括UIForm,UIPage,UIFrame,集合常用控件库即可快速开发WinForm应用程序。 SunnyUI.Net开发框架 更新日志: v3.0.2 UIMarkLabel:增加带颜色标签的Label UIRoundProcess:圆形滚动条 UIBreadcrumb:增加面包屑导航 UILedLabel:增加Led标签 UIHeaderButton:在工具箱中显示 UILineChart:支持拖拽选取放大 UIDateTimePicker:修复下拉选择日期后关闭的Bug UINavMenu:增加设置二级菜单底色 UIColorPicker:增加单击事件以选中颜色 UITitlePage:增加ShowTitle可控制是否显示标题 UINavBar:增加可设置背景图片 框架增加IFrame接口,方便页面跳转 UIDataGridView:修改垂直滚动条和原版一致,并增加翻页方式滚动 UIPagination: 修正因两次查询数量相等而引起的不刷新 UIHeaderButton: 增加字体图标背景时鼠标移上背景色 UITabControl:修改第一个TabPage关不掉的Bug UIDataGridView:增加EnterAsTab属性,编辑输入时,用Enter键代替Tab键跳到下一个单元格 UILineChart:增加鼠标框选放大,可多次放大,右键点击恢复一次,双击恢复 UITitlePanel:修复OnMouseMove事件 UITrackBar:增加垂直显示方式 UIFlowLayoutPanel:修改了一处因为其加入控件大小发生变化而引起的滚动条出错。
### 回答1: 这个企业Spark案例是关于如何展示出租车轨迹图表的。通过使用Spark技术,可以对大量的出租车轨迹数据进行处理和分析,并将结果以图表的形式展示出来。这样可以帮助企业更好地了解出租车的运营情况,优化出租车的调度和路线规划,提高出租车的运营效率和服务质量。同时,这个案例也展示了Spark在大数据处理和可视化方面的强大能力,为企业提供了更好的数据分析和决策支持。 ### 回答2: 随着时代的发展,数据分析技术已经成为企业分析业务的必要工具。而Spark作为一个强大的数据处理和分析计算框架,已成为越来越多企业的首选。 一家出租车公司使用Spark分析来自多个城市出租车的轨迹数据,这样他们就可以了解客户的行为和消费偏好。对于这些数据,公司使用了Spark中的GraphX库来将数据图表化。 在处理大规模数据时,传统的方法可能会遇到许多问题,例如计算时间长、计算复杂度高、对硬件要求高等。然而,使用Spark就可以轻松地解决这些问题。Spark擅长于大规模数据处理,具有卓越的性能和可扩展性,可以快速 地处理大量的数据。同时,Spark强大的分布式计算能力,充分利用集群的计算资源,提高了执行速度和计算效率。 在这家出租车公司的案例中,Spark是一个非常有用的工具,它可以将图像和轨迹数据可视化以帮助企业进行客户分析。Spark可以将轨迹数据转换成易于理解的图形,以支持公司对出租车的路线和行驶时间的深入分析。由于Spark的高性能和可伸缩性,处理大规模的轨迹数据变得轻松且高效。 此外,Spark还可以将结果与其他数据集进行交叉分析,以深入了解客户的行为模式和消费偏好。这种分析可以帮助企业制定更精准的营销策略和提高客户忠诚度。 综上所述,Spark是数据科学工具中的佼佼者,其高效性、可扩展性和强大的数据处理和分析能力使它成为越来越多的企业的首选。对于出租车公司来说,Spark可以帮助他们更好地了解客户的行为模式,并以此制定更明智的营销策略,从而提高公司的运营效率和盈利能力。 ### 回答3: 出租车轨迹图表展示是一款基于Apache Spark的数据分析和展示工具,旨在通过可视化展示出租车轨迹数据的空间分布和时间变化情况,帮助企业更好地了解出租车的运营状况、交通流量、区域发展趋势等信息,从而做出更加明智的决策。 该工具主要通过Spark提供的Distributed Dataset(分布式数据集)和SQL(结构化查询语言)等技术,分析过亿级数据,为用户提供快速、可视化的数据呈现。具体而言,该工具可以处理的数据包括每辆出租车的GPS数据、空车和重车状态转移数据等,用户可以按照时间、区域、出租车号等维度进行数据筛选、统计和可视化呈现。 在使用该工具时,用户可以通过上传需要展示的数据文件,并完成数据清洗、格式转换等操作,然后根据需求配置数据呈现的方式和参数,最终生成图表展示。其中,该工具提供的图表种类包括时间轴图、热力图、等高线图、点聚合图等,用户可以根据自己的需求进行选择和调整。此外,该工具还提供了交互式的功能,比如地图缩放、拖拽等,让用户能够更加直观地了解和分析数据。 总的来说,出租车轨迹图表展示基于Spark分布式计算框架,通过将出租车轨迹数据转化为可视化图表展示,可以帮助企业更加全面地了解数据的空间分布和时间变化情况,从而为企业的决策提供依据,应用价值较高。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值