一、饼图
DataTable dtArlarm = new DataTable();
bool IsInit = true;
private void InitUI()
{
this.Invoke((EventHandler)delegate
{
try
{
if (IsInit)
{
dtArlarm.Columns.Clear();
dtArlarm.Columns.Add("ColName", typeof(string));
dtArlarm.Columns.Add("ColValue", typeof(decimal));
IsInit = false;
}
Random random = new Random();
dtArlarm.Rows.Clear();
List<int> num = new List<int>();
for (int i = 0; i < 10; i++)
{
num.Add(random.Next(1, 20));
}
num.Sort();
for (int i = 0; i < 10; i++)
{
dtArlarm.Rows.Add("报警" + (i + 1), num[i]);
}
chartArlarm.DataSource = dtArlarm;
chartArlarm.Series.Clear();
Series testSeries = new Series("报警监控", ViewType.Pie);
testSeries.ArgumentDataMember = "ColName";
testSeries.ValueDataMembers.AddRange(new string[] { "ColValue" });
testSeries.Label.PointOptions.PointView = PointView.ArgumentAndValues;
testSeries.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True;
chartArlarm.Series.Add(testSeries);
chartArlarm.Titles[0].Text = "报警监控";
chartArlarm.Titles[0].TextColor = System.Drawing.Color.MediumSeaGreen;
chartArlarm.Refresh();
}
catch (System.Exception ex)
{
}
});
}
运行结果
二、柱状图
DataTable dtProduct = new DataTable();
bool IsProductFirst = true;
private void InitUIProduct()
{
this.Invoke((EventHandler)delegate
{
try
{
// if (IsProductFirst)
{
dtProduct.Columns.Clear();
dtProduct.Columns.Add("编号", typeof(string));
dtProduct.Columns.Add("生产总数", typeof(decimal));
dtProduct.Columns.Add("OK数", typeof(decimal));
dtProduct.Columns.Add("NG数", typeof(decimal));
IsProductFirst = false;
}
Random r = new Random();
List<int> n = new List<int>();
dtProduct.Rows.Clear();
for (int j = 0; j < 24; j++)
{
n.Clear();
for (int i = 0; i < 3; i++)
{
n.Add(r.Next(1, 100));
}
n.Sort();
n.Reverse();
dtProduct.Rows.Add(new object[] { $"{(j + 1).ToString().PadLeft(2, '0')}:00", n[0], n[1], n[2] });
}
chartProduct.DataSource = dtProduct;
chartProduct.Series.Clear();
Series series1 = new Series("生产总数", ViewType.Bar);
series1.DataSource = dtProduct;
series1.ArgumentScaleType = ScaleType.Qualitative;
series1.ArgumentDataMember = "编号";//x坐标
series1.ValueScaleType = ScaleType.Numerical;
series1.ValueDataMembers.AddRange(new string[] { "生产总数" });//Y坐标
// series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
Series series2 = new Series("OK数", ViewType.Bar);
series2.DataSource = dtProduct;
series2.ArgumentScaleType = ScaleType.Qualitative;
series2.ArgumentDataMember = "编号";
series2.ValueScaleType = ScaleType.Numerical;
series2.ValueDataMembers.AddRange(new string[] { "OK数" });
// series2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
Series series3 = new Series("NG数", ViewType.Bar);
series3.DataSource = dtProduct;
series3.ArgumentScaleType = ScaleType.Qualitative;
series3.ArgumentDataMember = "编号";
series3.ValueScaleType = ScaleType.Numerical;
series3.ValueDataMembers.AddRange(new string[] { "NG数" });
// series3.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
chartProduct.Series.Add(series1);
chartProduct.Series.Add(series2);
chartProduct.Series.Add(series3);
chartProduct.Refresh();
}
catch (System.Exception ex)
{
}
});
}
结果
三、折线图
DataTable dtLineUI = new DataTable();
private void InitUILineUI()
{
this.Invoke((EventHandler)delegate {
dtLineUI.Columns.Clear();
dtLineUI.Columns.Add("时间", typeof(string));
dtLineUI.Columns.Add("温度", typeof(decimal));
dtLineUI.Rows.Clear();
Random r = new Random();
for (int i = 0; i < 12; i++)
{
dtLineUI.Rows.Add($@"{(i + 1).ToString().PadLeft(2, '0')}:00", r.Next(1, 50));
}
chartTemperature.DataSource = dtLineUI;
chartTemperature.Series.Clear();
Series series = new Series("光管1温度", ViewType.Spline);
series.DataSource = dtLineUI.Copy();
series.ArgumentScaleType = ScaleType.Qualitative;
series.ArgumentDataMember = "时间";
series.ValueScaleType = ScaleType.Numerical;
series.ValueDataMembers.AddRange(new string[] { "温度" });
series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
chartTemperature.Series.Add(series);
dtLineUI.Rows.Clear();
for (int i = 0; i < 12; i++)
{
dtLineUI.Rows.Add($@"{(i + 1).ToString().PadLeft(2, '0')}:00", r.Next(1, 50));
}
Series series1 = new Series("光管2温度", ViewType.Spline);
series1.DataSource = dtLineUI.Copy();
series1.ArgumentScaleType = ScaleType.Qualitative;
series1.ArgumentDataMember = "时间";
series1.ValueScaleType = ScaleType.Numerical;
series1.ValueDataMembers.AddRange(new string[] { "温度" });
series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
chartTemperature.Series.Add(series1);
chartTemperature.Refresh();
});
}
结果