設定marker屬性時,在程式運行時沒有任何反應。。。。求各位大佬指示。
使用的代碼:
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;
using System.IO;
namespace testchart
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const int DATALENGH = 3648;
double[] Scale_param = new double[DATALENGH];//系數
double[] Scale_Xparam = new double[DATALENGH];//系數對應的X軸
private void Form1_Load(object sender, EventArgs e)
{
ReadData(@"E:/wokspace//data/bk_signal.txt", DATALENGH, out Scale_Xparam, out Scale_param);
InitCharts();
//chart1.Series[0].Points.Clear();
chart1.Titles[0].Text = "原始信號";
double[] dx = new double[8] {4,2,5,1,6,2,7,3};
for (int i = 0; i < 8; i ++)
{
chart1.Series[0].Points.AddXY(i, dx[i]);
}
}
private void InitCharts()
{
//主圖
Series series = chart1.Series[0];
// 畫樣條曲線(Spline)
series.ChartType = SeriesChartType.FastLine;
// 設定顯示范圍
ChartArea chartArea = chart1.ChartAreas[0];
chartArea.AxisX.Minimum = 0;//X軸
chartArea.AxisX.Maximum = 10;
chartArea.AxisY.Minimum = -0.1;//Y軸
chartArea.AxisY.Maximum = 10;//0.7
chartArea.AxisX.Title = "波長/nm";
chartArea.AxisY.Title = "能量";
//設定標題
chart1.Titles.Add("光譜波形");
chart1.Titles[0].Text = "光譜波形";
chart1.Series[0].MarkerStyle = MarkerStyle.Circle;
//this.chart1.Series[0].Points.Clear();
//
}
public void ReadData(string strPath, int nLen, out double[] dXTemp, out double[] dTemp)
{
dXTemp = new double[nLen];
dTemp = new double[nLen];
if (File.Exists(strPath))
{
string strCon = "";
StreamReader reader = new StreamReader(strPath);
int i = 0;
while (!reader.EndOfStream)
{
int nId = -1;
strCon = reader.ReadLine();
nId = strCon.IndexOf(',');//存盤形式為x,y
if (nId >= 0)
{
string strBKData = strCon.Substring(nId + 1);
dTemp[i] = Convert.ToDouble(strBKData);
//X軸資料
string strXData = strCon.Substring(0, nId);
dXTemp[i] = Convert.ToDouble(strXData);
i++;
}
}
reader.Close();
reader.Dispose();
reader = null;
}
}
private void button1_Click(object sender, EventArgs e)
{
chart1.Series[0].BorderWidth = 2; //線條粗細
//chart1.Series[0].MarkerBorderColor = Color.Red; //標記點邊框顏色
//chart1.Series[0].MarkerBorderWidth = 3; //標記點邊框大小
//chart1.Series[0].MarkerColor = Color.Red; //標記點中心顏色
//chart1.Series[0].MarkerSize = 5; //標記點大小
//chart1.Series[0].MarkerStep = 1;
//chart1.Series[0].MarkerStyle = MarkerStyle.Circle; //標記點型別
chart1.Series[0].Points[3].MarkerBorderColor = Color.Red; //標記點邊框顏色
chart1.Series[0].Points[3].MarkerBorderWidth = 3; //標記點邊框大小
chart1.Series[0].Points[3].MarkerColor = Color.Red; //標記點中心顏色
chart1.Series[0].Points[3].MarkerSize = 5;
chart1.Series[0].Points[3].MarkerStyle = MarkerStyle.Circle; //標記點型別
}
}
對應的圖片:
我給曲線設定為fastline時,運行marker點沒有顯示。

如果給曲線設定為Spline時,設定好marker后,所有點都顯示了,也不滿足我的要求。我只要求在個別點上顯示,而不是全部的點顯示。
設定曲線格式為Spline時

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/11505.html
標籤:C#
上一篇:在WPF中如何使用scrollviewer放大圖片并通過滑鼠畫出選區,保存這個選區到一張圖片?
下一篇:89年還能轉行嗎?
