免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Mschart應(yīng)用之曲線圖表spline

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Windows.Forms.DataVisualization.Charting;

using System.Drawing;

using System.Windows.Forms;

 

 

namespace KryptonFormAirCompressor.BLL

{

    class StartRun

    {

        static DateTime startTime = DateTime.Now.AddSeconds(-1);

        DateTime endTime = startTime.AddSeconds(6);

        DateTime kd = DateTime.Parse("00:00:01");

        Random rd = new Random();       //隨機(jī)函數(shù),產(chǎn)生Y軸數(shù)據(jù)

        DataTable dt = new DataTable(); //創(chuàng)建數(shù)據(jù)表,存儲數(shù)據(jù)

        int flag = 0;   //設(shè)置Timer控件是否生效

        int i = 0;      //顯示數(shù)據(jù)表中的數(shù)據(jù)行數(shù)

        double yMax = 400;

        double yMin = -400;

        double yStep = 200;

        Chart mychart = new Chart();

 

        //圖表初始化

        public void chartInit(Chart ch, TabPage tp)

        {

            TabPage tabPage2 = tp;

            Chart chInit = ch;

            ch.Series["Series1"].Points.Clear();

            chInit.Width = tabPage2.Width / 2 - 1;

            chInit.Height = tabPage2.Height / 3 - 25;

            chInit.BackColor = Color.Azure;

 

            //設(shè)置是否在內(nèi)部繪圖區(qū)域中自動設(shè)置合適的圖表元素

            chInit.ChartAreas["ChartArea1"].Position.Auto = false;

            chInit.ChartAreas["ChartArea1"].Position.X = 0;

            chInit.ChartAreas["ChartArea1"].Position.Y = 0;

            chInit.ChartAreas["ChartArea1"].Position.Width = 100;

            chInit.ChartAreas["ChartArea1"].Position.Height = 100;

            chInit.ChartAreas["ChartArea1"].InnerPlotPosition.Auto = false;

            chInit.ChartAreas["ChartArea1"].InnerPlotPosition.X = 7;

            chInit.ChartAreas["ChartArea1"].InnerPlotPosition.Y = 4;

            chInit.ChartAreas["ChartArea1"].InnerPlotPosition.Width = 88;

            chInit.ChartAreas["ChartArea1"].InnerPlotPosition.Height = 85;

 

            ////設(shè)置X軸字體類型、大小、顏色

            //chInit.ChartAreas["ChartArea1"].AxisX.LabelStyle.Font = new System.Drawing.Font("宋體", 10f);

            //chInit.ChartAreas["ChartArea1"].AxisX.LabelStyle.ForeColor = Color.Black;

 

            ////設(shè)置Y軸字體類型、大小、顏色

            //chInit.ChartAreas["ChartArea1"].AxisY.LabelStyle.Font = new System.Drawing.Font("宋體", 10f);

            //chInit.ChartAreas["ChartArea1"].AxisY.LabelStyle.ForeColor = Color.Black;

        }

 

        public double chart(Chart ch, int category, DataTable table, double min, double max, double now)

        {

            mychart = ch;

            dt = table;

 

 

 

            yMin = min;

            yMax = max;

            yStep = (yMax - yMin) / 4;

            DataRow dr = dt.NewRow();

            dr["XTime"] = DateTime.Now.ToString("HH:mm:ss");

            switch (category)

            {

                case 0:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 1:

                    dr["YTemp"] = rd.Next(-10, 50);

                    break;

                case 2:

                    dr["YTemp"] = rd.Next(-80, 80);

                    break;

                case 3:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 4:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 5:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 6:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 7:

                    dr["YTemp"] = rd.Next(-10, 50);

                    break;

                case 8:

                    dr["YTemp"] = rd.Next(-80, 80);

                    break;

                case 9:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 10:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 11:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 12:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 13:

                    dr["YTemp"] = rd.Next(-800, 1000);

                    break;

                case 14:

                    dr["YTemp"] = rd.Next(-50, 10);

                    break;

                case 15:

                    dr["YTemp"] = rd.Next(-60, 20);

                    break;

                case 16:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

                case 17:

                    dr["YTemp"] = rd.Next(-10, 80);

                    break;

                default:

                    dr["YTemp"] = rd.Next(-360, 360);

                    break;

 

                //"大氣壓力",

                //"環(huán)境溫度",

                //"環(huán)境溫度",

                //"吸氣溫度",

                //"進(jìn)氣壓力",

                //"一級吸氣溫度",

                //"一級排氣壓力",

                //"一級排氣溫度",

                //"中冷壓差",

                //"二級吸氣溫度",

                //"二級排氣壓力",

                //"二級排氣溫度",

                //"噴嘴壓差",

                //"噴嘴溫度",

                //"轉(zhuǎn)速",

                //"扭矩",

                //"電壓",

                //"電流",

            }

            dt.Rows.Add(dr);

 

 

            #region 折線圖

            mychart.DataSource = dt;//綁定數(shù)據(jù)

            mychart.Series["Series1"].ChartType = SeriesChartType.Spline;//設(shè)置圖表類型

            mychart.Series["Series1"].IsValueShownAsLabel = false;//顯示數(shù)據(jù)點(diǎn)的值

            mychart.Series["Series1"].BorderColor = Color.Green;

            //mychart.Series["Series1"].LegendText = "動態(tài)溫度點(diǎn)";

            //mychart.Series["Series1"].Legend.Remove(1);

            mychart.Series["Series1"].IsVisibleInLegend = false;

            mychart.Series["Series1"].MarkerStyle = MarkerStyle.Circle; //線條上的數(shù)據(jù)點(diǎn)標(biāo)志類型

            mychart.Series["Series1"].MarkerBorderWidth = 0;

            mychart.Series["Series1"].MarkerColor = Color.Red;

 

            //////設(shè)置是否在內(nèi)部繪圖區(qū)域中自動設(shè)置合適的圖表元素

            //mychart.ChartAreas["ChartArea1"].Position.Auto = false;

            //mychart.ChartAreas["ChartArea1"].Position.X = 0;

            //mychart.ChartAreas["ChartArea1"].Position.Y = 1;

            //mychart.ChartAreas["ChartArea1"].Position.Width = 100;

            //mychart.ChartAreas["ChartArea1"].Position.Height = 100;

            //mychart.ChartAreas["ChartArea1"].InnerPlotPosition.Auto = false;

            //mychart.ChartAreas["ChartArea1"].InnerPlotPosition.X = 5;

            //mychart.ChartAreas["ChartArea1"].InnerPlotPosition.Y = 3;

            //mychart.ChartAreas["ChartArea1"].InnerPlotPosition.Width = 90;

            //mychart.ChartAreas["ChartArea1"].InnerPlotPosition.Height = 85;

 

            i = dt.Rows.Count - 1;

            now = Convert.ToDouble(dt.Rows[i]["YTemp"].ToString());

            mychart.Series[0].Points.AddXY(Convert.ToDateTime(dt.Rows[i]["XTime"].ToString()).ToOADate(), Convert.ToDouble(dt.Rows[i]["YTemp"].ToString()));

 

            //X軸設(shè)置

            //mychart.ChartAreas["ChartArea1"].AxisX.Title = "時間";//X軸標(biāo)題

            mychart.ChartAreas["ChartArea1"].AxisX.TitleAlignment = StringAlignment.Near;//設(shè)置X軸標(biāo)題的名稱所在位置位近

            mychart.ChartAreas["ChartArea1"].AxisX.MajorTickMark.Enabled = true//坐標(biāo)軸上的刻度線

            mychart.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = true;//不顯示豎著的分割線

            mychart.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dash;//主網(wǎng)格為虛線

            mychart.ChartAreas["ChartArea1"].AxisX.LineColor = Color.Blue; //X軸顏色

            mychart.ChartAreas["ChartArea1"].AxisX.IsMarksNextToAxis = true;

            //mychart.ChartAreas["ChartArea1"].AxisX.LabelStyle.IsEndLabelVisible = false;//最后一個標(biāo)簽點(diǎn)顯示

 

            //圖像上方的X2軸設(shè)置

            mychart.ChartAreas["ChartArea1"].AxisX2.Enabled = AxisEnabled.True;

            mychart.ChartAreas["ChartArea1"].AxisX2.MajorGrid.Enabled = false;

            mychart.ChartAreas["ChartArea1"].AxisX2.MajorTickMark.Enabled = false;

            mychart.ChartAreas["ChartArea1"].AxisX2.LineColor = Color.Blue;

            mychart.ChartAreas["ChartArea1"].AxisX2.LabelStyle.Enabled = false;

 

            //設(shè)置X軸字體類型、大小、顏色

            mychart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Font = new System.Drawing.Font("宋體", 10f);

            mychart.ChartAreas["ChartArea1"].AxisX.LabelStyle.ForeColor = Color.Black;

 

            //設(shè)置Y軸字體類型、大小、顏色

            mychart.ChartAreas["ChartArea1"].AxisY.LabelStyle.Font = new System.Drawing.Font("宋體", 10f);

            mychart.ChartAreas["ChartArea1"].AxisY.LabelStyle.ForeColor = Color.Black;

 

            /************************************************************************/

            /* 本文重點(diǎn)講解時間格式的設(shè)置

             * 但第一個點(diǎn)并不能保證在原點(diǎn)第一個時間坐標(biāo)位置,與時間間隔跨度有關(guān)系

             * 需要設(shè)置最小時間,最大小時,時間間隔類型,時間間隔值等四個參數(shù),以保證當(dāng)前網(wǎng)絡(luò)跨度內(nèi)容顯示6個主網(wǎng)絡(luò)線*/

            /************************************************************************/

            mychart.Series["Series1"].XValueType = ChartValueType.DateTime;     //X軸標(biāo)簽為時間類型

            mychart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "HH:mm:ss";  //X軸上顯示時、分、秒

 

            if (DateTime.Now.ToOADate() > endTime.ToOADate())

            {

                endTime = endTime.AddSeconds(6);//延長X時間軸

 

                //設(shè)置時間單位的最小、最大值

                mychart.ChartAreas["ChartArea1"].AxisX.Minimum = startTime.ToOADate();

                mychart.ChartAreas["ChartArea1"].AxisX.Maximum = endTime.ToOADate();

 

                //跨度為秒,間隔是通過最大時間與最小時間差相減除6所得,所以有6個間隔線

                mychart.ChartAreas["ChartArea1"].AxisX.IntervalType = DateTimeIntervalType.Seconds;

                TimeSpan jianGe = endTime - startTime;

                mychart.ChartAreas["ChartArea1"].AxisX.Interval = (jianGe.TotalSeconds) / 6;

            }

 

 

            //Y軸設(shè)置

            //mychart.ChartAreas["ChartArea1"].AxisY.Title = "氣溫";//Y軸標(biāo)題

            mychart.ChartAreas["ChartArea1"].AxisY.TitleAlignment = StringAlignment.Far;//設(shè)置Y軸標(biāo)題的名稱所在位置位遠(yuǎn)

            mychart.ChartAreas["ChartArea1"].AxisY.Interval = yStep;

            mychart.ChartAreas["ChartArea1"].AxisY.Maximum = yMax;

            mychart.ChartAreas["ChartArea1"].AxisY.Minimum = yMin;

            mychart.ChartAreas["ChartArea1"].AxisY.IsStartedFromZero = true;

 

            mychart.ChartAreas["ChartArea1"].AxisY.MajorTickMark.Enabled = false;//坐標(biāo)軸上的刻度線,為false時少了小橫桿線

            mychart.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;

            mychart.ChartAreas["ChartArea1"].AxisY.LineColor = Color.Blue;

 

            //圖像上方的X2軸設(shè)置

            mychart.ChartAreas["ChartArea1"].AxisY2.Enabled = AxisEnabled.True;

            mychart.ChartAreas["ChartArea1"].AxisY2.MajorGrid.Enabled = false;

            mychart.ChartAreas["ChartArea1"].AxisY2.MajorTickMark.Enabled = false;

            mychart.ChartAreas["ChartArea1"].AxisY2.LineColor = Color.Blue;

            mychart.ChartAreas["ChartArea1"].AxisY2.LabelStyle.Enabled = false;

 

            #endregion

 

            return now;

        }

    }

}

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用Microsoft Chart Controls(MSChart)實(shí)現(xiàn)曲線圖,并支持拖動放大到秒
chart 控件畫柱狀圖和餅圖
.NET MSChart應(yīng)用的一個簡單例子
Qt QChart,利用QChart繪制動態(tài)曲線
chart控件制作統(tǒng)計(jì)圖
VS2017中使用QT Chart圖表
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服