数据源既拼出来的数组,X Y 轴对应数组使用List<String> 从数据源添加最后转换为数组
public partial class frmZed_1 : Form
{
DataGridView gridview = null;
DateTime _date_s, _date_e;
GraphPane myPane;
List<string> list_Steel = null;
List<string> List_Mat = null;
public frmZed_1()
{
InitializeComponent();
}
public frmZed_1(DataGridView gridview, DateTime _date_s, DateTime _date_e, List<string> list_Steel,
List<string> List_Mat )
: this()
{
this.gridview = gridview;
this._date_s = _date_s;
this._date_e = _date_e;
this.list_Steel = list_Steel;
this.List_Mat = List_Mat;
}
private void frmZed_1_Load(object sender, EventArgs e)
{
comboBox_Mat.DataSource = List_Mat;
comboBox_Steel.DataSource = list_Steel;
myPane = zed.GraphPane;
myPane.Title.Text = "消耗趋势图";
myPane.Title.FontSpec.Size = 10;
myPane.XAxis.Title.Text = "炉号";
myPane.XAxis.Title.FontSpec.Size = 8;
myPane.YAxis.Title.FontSpec.Size = 8;
zed.IsShowPointValues = true;
myPane.Legend.FontSpec.Size = 5; //显示信息大小图例
myPane.YAxis.Title.Text="消耗量";
myPane.XAxis.Scale.FontSpec.Angle = 90;//X轴90度
myPane.YAxis.Scale.FontSpec.Size = 5;
myPane.YAxis.Scale.FontSpec.Family = "Times New Roman";
myPane.XAxis.Scale.FontSpec.Size = 5;
myPane.XAxis.Scale.MinorStep = 1;//刻度
CreateChat(gridview);
}
private void CreateChartByColumnName(DataGridView dataGridview)
{
if (dataGridview.DataSource == null) return;
//生成X轴钢种坐标
string Unit = "T";
//if (comboBox_Mat.Text.Contains("线"))
//{
// Unit = "M";
//}
if (comboBox_Mat.Text.Contains("电"))
{
Unit = "KWH";
}
else
{
Unit = "T";
}
myPane.YAxis.Title.Text=string.Format("消耗量({0})",Unit);
myPane.Title.Text = string.Format("钢种{0}时间从{1}到{2}消耗趋势图", comboBox_Steel.Text, _date_s.ToString("yyyy-MM-dd HH:mm:ss"), _date_e.ToString("yyyy-MM-dd HH:mm:ss"));
DataTable dt = dataGridview.DataSource as DataTable;
DataView dv = new DataView(dt);
dv.RowFilter = string.Format("钢种='{0}'", this.comboBox_Steel.Text);
dv.Sort = "炉号 ASC";
List<string> listlables = new List<string>();
List<double> list_Y = new List<double>();
//炼钢用铁水,
// sum(cl."废钢铁统料") 废钢铁统料,
// sum(cl."炼钢用铁块") 炼钢用铁块
myPane.CurveList.Clear();
foreach (DataRowView drv in dv)
{
listlables.Add(drv["炉号"].ToString());
list_Y.Add((drv[comboBox_Mat.Text].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv[comboBox_Mat.Text].ToString()));
}
string[] labels = listlables.ToArray();
myPane.CurveList.Clear();
LineItem curve = myPane.AddCurve(comboBox_Mat.Text,
null, list_Y.ToArray(), Color.Red, SymbolType.Circle);
curve.Line.Width = 1.5F;
curve.Symbol.Fill = new Fill(Color.Red);
curve.Symbol.Size = 2;
curve.Line.IsSmooth = true;
myPane.XAxis.Type = AxisType.Text;
myPane.XAxis.Scale.TextLabels = labels; //设置X轴坐标
zed.AxisChange();
zed.Refresh();
}
#region
/// <summary>
/// 生成曲线图
/// </summary>
/// <param name="dataGridview"></param>
private void CreateChat(DataGridView dataGridview)
{
//if (dataGridview.DataSource == null) return;
//生成X轴钢种坐标
//myPane.Title.Text = string.Format("钢种{0}当天【{1}】消耗趋势图", this.comboBox_Steel.Text, _date.ToString("yyyy年MM月dd日"));
//DataTable dt = dataGridview.DataSource as DataTable;
// DataView dv = new DataView(dt);
// dv.RowFilter = string.Format("钢种='{0}'", this.steel);
// dv.Sort = "炉号 ASC";
// List<string> listlables = new List<string>();
// List<Double> list_Y_1 = new List<double>();
// List<Double> list_Y_2 = new List<double>();
// List<Double> list_Y_3 = new List<double>();
// // sum(cl."铝锰铁") "铝锰铁",
// //sum(cl."电炉低碳锰铁") "电炉低碳锰铁",
// //sum(cl."低铝硅铁") "低铝硅铁",
// //sum(cl."高碳锰铁") "高碳锰铁",
// //sum(cl."锰硅合金6517") "锰硅合金6517",
// //sum(cl."高硅硅锰(2)") "高硅硅锰(2))",
// //sum(cl."钒氮合金(VN12)") "钒氮合金(VN12)",
// //sum(cl."硅铁") "硅铁",
// //sum(cl."电炉中碳锰铁") "电炉中碳锰铁"
// List<Double> list_Y_4 = new List<double>();
// List<Double> list_Y_5 = new List<double>();
// List<Double> list_Y_6 = new List<double>();
// List<Double> list_Y_7 = new List<double>();
// List<Double> list_Y_8 = new List<double>();
// List<Double> list_Y_9 = new List<double>();
// List<Double> list_Y_10 = new List<double>();
// List<Double> list_Y_11 = new List<double>();
// List<Double> list_Y_12 = new List<double>();
// //炼钢用铁水,
// // sum(cl."废钢铁统料") 废钢铁统料,
// // sum(cl."炼钢用铁块") 炼钢用铁块
// foreach (DataRowView drv in dv)
// {
// listlables.Add(drv["炉号"].ToString());
// list_Y_1.Add((drv["炼钢用铁水"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["炼钢用铁水"].ToString()));
// list_Y_2.Add((drv["废钢铁统料"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["废钢铁统料"].ToString()));
// list_Y_3.Add((drv["炼钢用铁块"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["炼钢用铁块"].ToString()));
// list_Y_4.Add((drv["铝锰铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["铝锰铁"].ToString()));
// list_Y_5.Add((drv["电炉低碳锰铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["电炉低碳锰铁"].ToString()));
// list_Y_6.Add((drv["低铝硅铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["低铝硅铁"].ToString()));
// list_Y_7.Add((drv["高碳锰铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["高碳锰铁"].ToString()));
// list_Y_8.Add((drv["锰硅合金6517"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["锰硅合金6517"].ToString()));
// list_Y_9.Add((drv["高硅硅锰(2))"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["高硅硅锰(2))"].ToString()));
// list_Y_10.Add((drv["钒氮合金(VN12)"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["钒氮合金(VN12)"].ToString()));
// list_Y_11.Add((drv["硅铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["硅铁"].ToString()));
// list_Y_12.Add((drv["电炉中碳锰铁"].Equals(DBNull.Value)) ? 0 : Convert.ToDouble(drv["电炉中碳锰铁"].ToString()));
// }
// string[] labels = listlables.ToArray();
// myPane.CurveList.Clear();
// LineItem myCurve_1 = myPane.AddCurve("炼钢用铁水",
// null, list_Y_1.ToArray(), Color.Red, SymbolType.Circle);
// LineItem myCurve_2 = myPane.AddCurve("废钢铁统料",
// null, list_Y_2.ToArray(), Color.Blue, SymbolType.Circle);
// LineItem myCurve_3 = myPane.AddCurve("炼钢用铁块",
// null, list_Y_3.ToArray(), Color.Magenta, SymbolType.Circle);
// LineItem myCurve_4 = myPane.AddCurve("铝锰铁",
//null, list_Y_4.ToArray(), Color.Maroon, SymbolType.Circle);
// LineItem myCurve_5 = myPane.AddCurve("电炉低碳锰铁",
//null, list_Y_5.ToArray(), Color.Fuchsia, SymbolType.Circle);
// LineItem myCurve_6 = myPane.AddCurve("低铝硅铁",
//null, list_Y_6.ToArray(), Color.DarkRed, SymbolType.Circle);
// LineItem myCurve_7 = myPane.AddCurve("高碳锰铁",
//null, list_Y_7.ToArray(), Color.Purple, SymbolType.Circle);
// LineItem myCurve_8 = myPane.AddCurve("锰硅合金6517",
//null, list_Y_8.ToArray(), Color.DarkBlue, SymbolType.Circle);
// LineItem myCurve_9 = myPane.AddCurve("高硅硅锰(2))",
//null, list_Y_9.ToArray(), Color.BlueViolet, SymbolType.Circle);
// LineItem myCurve_10 = myPane.AddCurve("钒氮合金(VN12)",
//null, list_Y_10.ToArray(), Color.Chocolate, SymbolType.Circle);
// LineItem myCurve_11 = myPane.AddCurve("硅铁",
//null, list_Y_11.ToArray(), Color.Coral, SymbolType.Circle);
// LineItem myCurve_12 = myPane.AddCurve("电炉中碳锰铁",
//null, list_Y_12.ToArray(), Color.CornflowerBlue, SymbolType.Circle);
// ;
// myPane.CurveList.ForEach(new Action<CurveItem>(delegate(CurveItem item)
// {
// LineItem curve = item as LineItem; curve.Line.Width = 1.5F;
// curve.Symbol.Fill = new Fill(Color.Red);
// curve.Symbol.Size = 2;
// curve.Line.IsSmooth = true;
// }));
// myPane.XAxis.Type = AxisType.Text;
// //myPane.XAxis.Scale.MajorStep = 0;
// myPane.XAxis.Scale.TextLabels = labels;
// myPane.XAxis.Scale.FontSpec.Angle = 40;
// myPane.YAxis.Scale.FontSpec.Size = 5;
// myPane.XAxis.Scale.FontSpec.Size = 5;
// myPane.XAxis.Scale.MinorStep = 1;
// zed.IsShowPointValues = true;
// myPane.Legend.FontSpec.Size = 5;
// zed.AxisChange();
// zed.Refresh();
}
#endregion
private void btn_Chat_Click(object sender, EventArgs e)
{
CreateChartByColumnName(this.gridview);
}
}
ZedGraph
最新推荐文章于 2024-11-06 00:04:50 发布