SunnyUI 学习1.3——图表

SunnyUI 学习1.3——图表

炎黄子孙__ 2021-01-01 16:59:19  635  收藏 8

分类专栏: SunnyUI C# winform 文章标签: 可视化 c# winform

版权

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);

}

}

}

————————————————

版权声明:本文为CSDN博主「炎黄子孙__」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_43851684/article/details/112061124

(0)

相关推荐

  • 代码不到40行的超燃动态排序图

    出处https://colab.research.google.com/github/pratapvardhan/notebooks/blob/master/barchart-race-matplot ...

  • 用Python分析BOSS直聘的薪资数据,年后找工作有方向了!

    今天我们来看看招聘网站上,关于Python的工作,薪资状况是怎样的呢! 数据来源 数据来源于BOSS直聘,说实话,现在的招聘网站,做的比较好的还是BOSS直聘,其相关的数据.报告等都是比较有代表性的. ...

  • bar库 pyecharts

    Pyecharts V1全新版本使用教程--Bar(柱状图的使用) 以下内容均来自Pyecharts官方使用文档(可自行阅读)和自己的理解: 官方链接:https://pyecharts.org/#/ ...

  • Echart    gauge-speed根据数值改变显示颜色

    图标类型: gauge-speed 需求为: 数值大于80时,仪表盘上显示为绿色 数值大于50时,仪表盘上显示为黄色 其他数值为红色.注:数值范围为0~100. 即要实现下述效果: 源码如下: opt ...

  • SunnyUI 学习1.2——主题

    SunnyUI 学习1.2--主题 炎黄子孙__ 2021-01-01 15:09:01  434  收藏 3 分类专栏: SunnyUI C# 文章标签: c# winform 版权 1 简介 主题 ...

  • SunnyUI 学习1.1——简介与界面布局的使用

    SunnyUI 学习1.1--简介与界面布局的使用 炎黄子孙__ 2021-01-01 14:59:26  3015  收藏 12 分类专栏: SunnyUI C# winform 文章标签: c# ...

  • 实用学习技术:图表信息类大题解答策略

    随着高考命题指导思想的变化,考查学习能力立意的综合题不断增加,有些考生感到"不适应"."难度太大".尤其是图表信息的大量引入,"简直令人眼花缭乱&qu ...

  • 在职领,学习Excel商务图表更加容易。

    前段时间公司来了两个新的实习生,刚开始好像两个人能力都差不多,但在汇报的时候就看出他们两个的区别了. 第一个实习生的 Excel 图表做具有"商务气质",项目汇报总结图表让人眼前一 ...

  • 图表解读-著名商业分析工具(值得收藏学习)

    图表解读那些著名的商业分析工具,每个商业工具都有对应的详细介绍以及解读练习. 图表呈现也能更好地提炼知识点,值得收藏学习.

  • Excel图表学习68:制作温度计图

    excelperfect 引言:本文学习整理自chandoo.org,这是一个很好的学习Excel知识的网站. 进行数值比较是我们绘制图表的原因之一.下面我们介绍一个便捷的绘制温度计图的方法,用来比较 ...

  • 带你深入学习Excel的16种图表类型!

    大家都知道,相同的数据,使用不同的图表进行体现,效果也会千差万别,那么我们应该如何正确选择,才能让图表的作用发挥到极致呢? 1.柱形图 柱形图是最常见的图表类型,它的适用场合是二维数据集(每个数据点包 ...

  • Excel图表学习69:条件圆环图

    excelperfect 圆环图必须有8个切片,每个切片的颜色必须与工作表中的值对应,如下图1所示. 图1 每个切片的颜色显示在图表左侧的工作表单元格区域内.根据单元格包含的字母"R&quo ...

  • 易经学习必备图表

    太极 河图 洛书 先天八卦 后天八卦 八卦卦象记忆 八卦简要 五行生克 五行配人体 五行配中国地域 地支配生肖 地支关系 地支时间表 干支人体对应 干支关系总表 五行旺弱分析 长生十二诀 六十四卦简表 ...