国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Mschart應用之曲線圖表spline

2024-07-21 02:48:47
字體:
來源:轉載
供稿:網友
Mschart應用之曲線圖表spline

本文主要是Mschart應用之曲線圖表spline,實現6個模擬數據的圖表,其中數據源X軸為當前系統時間,Y軸是由隨機函數產生的不同范圍的隨機數。

首先是自定義一個數據表,然后產生的數據添加到該數據表中,最后通過chart1.Series[0].Points.AddXY()函數把數據繪制到圖表上。

在開始運行界面主要是通過Timer函數不斷調用繪制圖表,具體圖表繪制函數在StartRun類之中,下面是開始運行界面。

開始運行界面后臺代碼:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using ComponentFactory.Krypton.Toolkit;//項目需要命名空間//using System.Data.SqlClient;using KryptonFormAirComPRessor.DAL;using KryptonFormAirCompressor.BLL;using System.Windows.Forms.DataVisualization.Charting;namespace KryptonFormAirCompressor.UI{    public partial class 開始運行 : ComponentFactory.Krypton.Toolkit.KryptonForm    {        //定義數據采集類        StartRun run = new StartRun();        DataTable dt = new DataTable();        //定義一種行樣式        private DataGridViewCellStyle m_RowStyleNormal;        //定義測試數據邏輯類        testdData td = new testdData();        public 開始運行()        {            InitializeComponent();        }        private void 開始運行_Resize(object sender, EventArgs e)        {            Split1.Height = this.tabPage2.Height / 3 - 1;            Split2.Height = this.tabPage2.Height / 3 - 1;            Split3.Height = this.tabPage2.Height - Split1.Height - Split2.Height;            tabRun.Refresh();            // run.chartInit(chart1, tabPage2);        }        private void 開始運行_Load(object sender, EventArgs e)        {            refeshData();            run.chartInit(chart1, tabPage2);            run.chartInit(chart2, tabPage2);            run.chartInit(chart3, tabPage2);            run.chartInit(chart4, tabPage2);            run.chartInit(chart5, tabPage2);            run.chartInit(chart6, tabPage2);            //添加數據表兩列            dt.Columns.Add("XTime", System.Type.GetType("System.String"));            dt.Columns.Add("YTemp", System.Type.GetType("System.String"));        }        //刷新數據        private void refeshData()        {            kptGridRun.DataSource = td.GetDataTable();            kptGridRun.AllowUserToAddRows = false;        }        /// <summary>        /// 設置單元格的格式        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void kptGridRun_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)        {            //可根據需要設置更多樣式屬性,如字體、對齊、前景色、背景色等            this.m_RowStyleNormal = new DataGridViewCellStyle();            //this.m_RowStyleNormal.BackColor = Color.LightBlue;            kptGridRun.Columns[0].DefaultCellStyle.BackColor = Color.LightGray;            kptGridRun.Columns[1].DefaultCellStyle.BackColor = Color.LightGray; ;            kptGridRun.Columns[2].DefaultCellStyle.BackColor = Color.LightGray; ;            //this.m_RowStyleNormal.SelectionBackColor = Color.LightSteelBlue;            //this.m_RowStyleNormal.SelectionForeColor = Color.Red;            kptGridRun.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;            kptGridRun.Columns[0].FillWeight = 60;            kptGridRun.Columns[1].FillWeight = 100;            kptGridRun.Columns[2].FillWeight = 80;            kptGridRun.Columns[3].FillWeight = 50;            kptGridRun.Columns[4].FillWeight = 50;            kptGridRun.Columns[5].FillWeight = 50;            kptGridRun.Columns[0].ReadOnly = true;            kptGridRun.Columns[1].ReadOnly = true;            kptGridRun.Columns[2].ReadOnly = true;            kptGridRun.Columns[3].ReadOnly = true;            kptGridRun.Columns[4].ReadOnly = true;            kptGridRun.Columns[5].ReadOnly = true;            kptGridRun.RowsDefaultCellStyle = m_RowStyleNormal;        }        private void timer1_Tick(object sender, EventArgs e)        {            if (Convert.ToDouble(chart1TxtMin.Text) < Convert.ToDouble(chart1TxtMax.Text))            {                chart1TxtNow.Text = run.chart(chart1, chart1ComboBox.SelectedIndex, dt, Convert.ToDouble(chart1TxtMin.Text), Convert.ToDouble(chart1TxtMax.Text), 0).ToString();            }            if (Convert.ToDouble(chart2TxtMin.Text) < Convert.ToDouble(chart2TxtMax.Text))            {                chart2TxtNow.Text = run.chart(chart2, chart2ComboBox.SelectedIndex, dt, Convert.ToDouble(chart2TxtMin.Text), Convert.ToDouble(chart2TxtMax.Text), 0).ToString();            }            if (Convert.ToDouble(chart3TxtMin.Text) < Convert.ToDouble(chart3TxtMax.Text))            {                chart3TxtNow.Text = run.chart(chart3, chart3ComboBox.SelectedIndex, dt, Convert.ToDouble(chart3TxtMin.Text), Convert.ToDouble(chart3TxtMax.Text), 0).ToString();            }            if (Convert.ToDouble(chart4TxtMin.Text) < Convert.ToDouble(chart4TxtMax.Text))            {                chart4TxtNow.Text = run.chart(chart4, chart4ComboBox.SelectedIndex, dt, Convert.ToDouble(chart4TxtMin.Text), Convert.ToDouble(chart4TxtMax.Text), 0).ToString();            }            if (Convert.ToDouble(chart5TxtMin.Text) < Convert.ToDouble(chart5TxtMax.Text))            {                chart5TxtNow.Text = run.chart(chart5, chart5ComboBox.SelectedIndex, dt, Convert.ToDouble(chart5TxtMin.Text), Convert.ToDouble(chart5TxtMax.Text), 0).ToString();            }            if (Convert.ToDouble(chart6TxtMin.Text) < Convert.ToDouble(chart6TxtMax.Text))            {                chart6TxtNow.Text = run.chart(chart6, chart6ComboBox.SelectedIndex, dt, Convert.ToDouble(chart6TxtMin.Text), Convert.ToDouble(chart6TxtMax.Text), 0).ToString();            }        }    }}

  

StartRun類:

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();       //隨機函數,產生Y軸數據        DataTable dt = new DataTable(); //創建數據表,存儲數據        int flag = 0;   //設置Timer控件是否生效        int i = 0;      //顯示數據表中的數據行數        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;            //設置是否在內部繪圖區域中自動設置合適的圖表元素            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;            ////設置X軸字體類型、大小、顏色            //chInit.ChartAreas["ChartArea1"].AxisX.LabelStyle.Font = new System.Drawing.Font("宋體", 10f);            //chInit.ChartAreas["ChartArea1"].AxisX.LabelStyle.ForeColor = Color.Black;            ////設置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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新安县| 平陆县| 正阳县| 龙江县| 弋阳县| 那曲县| 碌曲县| 乌兰察布市| 巴林右旗| 松江区| 丰城市| 白朗县| 新龙县| 团风县| 嘉祥县| 丽水市| 本溪| 雷山县| 阜新市| 六盘水市| 锡林浩特市| 威远县| 平原县| 台江县| 温州市| 永寿县| 巴彦县| 铅山县| 栾川县| 招远市| 荣昌县| 沙雅县| 葵青区| 女性| 通道| 南漳县| 忻州市| 郓城县| 巴南区| 沁水县| 镇巴县|