您好,登錄后才能下訂單哦!
這篇文章主要講解了“C# Chart控件標記問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C# Chart控件標記問題怎么解決”吧!
我們來看一下解決的方法,我使用Chart控件里面對Point的MarkerStyle 進行標記,實現這樣的方式,對MarkerStyle 的樣式設置標記大小,標記顏色,以及標記展示的值,使用的是隨機函數產生的數據,生成的表格,對表格的數據添加,然后在對這個點進行標記,只標記最新是使用標一個去一個的方式,就是我把最新的標記好,把上一個去掉標記,哪個按鈕我只給了一個狀態值讓它去判斷是最新還是一直標記,也可以加個狀態不標記。后面貼了代碼你們可以后期自己二次更新。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace TestIC00 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } public int index = 0; public bool flag = false; private void button1_Click(object sender, EventArgs e) { timer1.Enabled = !timer1.Enabled;//對定時器的操作,點擊打開或關閉定時器,主要是實現一秒傳一個值 } private void timer1_Tick(object sender, EventArgs e) { Random random = new Random(); this.chart1.ChartAreas[0].AxisX.MajorGrid.Interval = 1;//網格間隔 this.chart1.ChartAreas[0].AxisX.MinorGrid.Interval = 1; this.chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 1;//網格間隔 this.chart1.ChartAreas[0].AxisY.MinorGrid.Interval = 1; this.chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//設置X軸的值的間隔大小 this.chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//設置X軸網格線顏色 this.chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//設置Y軸網格線顏色 chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;//啟動滾動條 this.chart1.ChartAreas[0].AxisY.LabelStyle.Enabled = false;//使Y軸的刻度隱藏 chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);//啟用視圖實現數據滾動 int value = random.Next(0, 20);//產生隨機數進行賦值 chart1.Series[0].Points.AddY(value);//對折線圖添加數據 if(flag)//判斷標記,如果是true表示只標記最新,需要去掉前面的一個值 { this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle;//設置標記的形狀為圓形 this.chart1.Series[0].Points[index].MarkerColor = Color.Red;//形狀顏色設置 this.chart1.Series[0].Points[index].MarkerBorderWidth = 3;//形狀大小設置 this.chart1.Series[0].Points[index].MarkerSize = 10;//設置我們展示標記的大小 this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString();//對標記展示的值 this.chart1.Series[0].Points[index].IsValueShownAsLabel = true;//展示標記 this.chart1.Series[0].Points[index-1].MarkerBorderWidth = 0;//改前一個標記的大小 this.chart1.Series[0].Points[index - 1].MarkerSize = 0;//形狀大小 this.chart1.Series[0].Points[index - 1].Label = "";//展示數據 this.chart1.Series[0].Points[index - 1].IsValueShownAsLabel = false;//不展示 } else//對數據一直標記 { this.chart1.Series[0].Points[index].MarkerStyle = MarkerStyle.Circle; this.chart1.Series[0].Points[index].MarkerColor = Color.Red; this.chart1.Series[0].Points[index].MarkerBorderWidth = 3; this.chart1.Series[0].Points[index].MarkerSize = 10; this.chart1.Series[0].Points[index].Label = "功能:" + this.chart1.Series[0].Name + "\r\n" + "值:" + value.ToString(); this.chart1.Series[0].Points[index].IsValueShownAsLabel = true; } //也可以加一種狀態是什么也不標記,你們自己對那個狀態值的處理就可以啦 index++; } private void button2_Click(object sender, EventArgs e)//只標記最新按鈕 { flag = !flag;//對狀態值的改變,我就使用了兩種狀態,你們可以改 } } }
感謝各位的閱讀,以上就是“C# Chart控件標記問題怎么解決”的內容了,經過本文的學習后,相信大家對C# Chart控件標記問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。