目录
一 设计原型
二 后台源码
using Sunny.UI;
namespace 动态图表
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 300; i++)
{
string code = new Random().Next(90000, 45345345).ToString();
string weight = new Random().Next(40, 100).ToString() + "kg";
string C = new Random().Next(400, 1000).ToString() + "kg";
string K = new Random().Next(800, 1200).ToString() + "mm";
string G = new Random().Next(100, 120).ToString() + "mm";
string X = new Random().Next(10, 120).ToString();
string Y = new Random().Next(50, 120).ToString();
string Z = new Random().Next(80, 120).ToString();
string R = "OK";
string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
uiDataGridView1.Rows.Add(code, weight, C, K, G, X, Y, Z, dt, R);
// 配置参数
var option = new UIBarOption();
// 配置标题
option.Title = new UITitle();
// 主标题
option.Title.Text = "数据变化";
// 副标题
option.Title.SubText = "实时数据";
// 设置图例
option.Legend = new UILegend();
// 图例水平布局
option.Legend.Orient = UIOrient.Horizontal;
// 图例放置在左上角
option.Legend.Top = UITopAlignment.Top;
option.Legend.Left = UILeftAlignment.Left;
// 两个图例分别是Bar1和Bar2
option.Legend.AddData("数据");
option.Legend.AddData("时间");
// 设置系列
UIBarSeries series = new UIBarSeries();
// 第一系列Bar1
series.Name = "数据";
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
series.AddData(new Random().Next(10, 50));
option.Series.Add(series);
// 设置第二系列Bar2
series = new UIBarSeries();
series.Name = "时间";
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
series.AddData(new Random().Next(30, 50));
option.Series.Add(series);
// 设置横坐标内容
// 第一系列和第二系列的元素交织分布
// 所以Mon是指第一和二系列的第一个元素的横坐标
// Tue指第一和二系列的第二个元素的横坐标
option.XAxis.Data.Add("条码");
option.XAxis.Data.Add("重量");
option.XAxis.Data.Add("长度");
option.XAxis.Data.Add("宽度");
option.XAxis.Data.Add("高度");
option.XAxis.Data.Add("X");
option.XAxis.Data.Add("Y");
option.XAxis.Data.Add("Z");
option.XAxis.Data.Add("总结果");
option.XAxis.Data.Add("时间");
// 辅助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 = 60 });
option.YAxisScaleLines.Add(new UIScaleLine() { Color = Color.Gold, Name = "下限", Value = 50 });
// 更新坐标轴
uiBarChart1.SetOption(option);
}
}
}
}