以 Windows 形式格式化折线图

Formating the Line Chart in Windows Forms

我是 C# 编程的新手,正在创建我的第一个 Windows 表单应用程序。我有两个一维数组,一个代表 X 轴值,另一个代表 Y 轴。

我正在尝试使用以下代码根据它们创建图表。

public void drawgraph()
    {
        chart1.Series["Series1"].Name = MemsName;
        for (int i = 0; i < VmicArray.Length; i++)
        {
            chart1.Series[MemsName].Points.AddXY(VmicArray[i], SensitivityArray[i]);

        }

        chart1.ChartAreas[0].AxisX.Title = "Vmic Value";
        chart1.ChartAreas[0].AxisY.Title = "Sensitivity";
    } 

我正在获取数组中的 XAxis 值(如 -2.333333754 或 6.46870),我设置的间隔为 5。 X轴的范围是从-4到+8。

有没有人可以帮助我获得像 Excel 图表中那样的输出?我尝试了很长时间,总是弄乱 X 轴的值。

我需要 XAxis 值从 -10 到 +10 的图表,间隔为 1,并将 Y 值映射到图表上相应的 X 值。

不幸的是我不能post任何图片:(

如果您想将某个范围的值投影到另一个范围,您需要在这些值之间使用线性插值。首先确定旧的最小值和最大值 (MinXMaxX) 并定义新的限制 (-10, 10)。

然后使用一个简单的公式来确定任意旧值的新x值。

double MinX = VmicArray.min;
double MaxX = VmicArray.Max;

double NewMin = -10;
double NewMax = 10;

for (i = 0; i <= VmicArray.Count - 1; i++) {
    // Linear interpolation     
    double NewX = VmicArray(i) / (MaxX - MinX) * (NewMax - NewMin) + NewMin;
}

在使用 AddXY 之前重新计算每个 X 值。


为了仅更改每个轴的可见边界,您可以使用 XAxis.MinimumXAxis.Maximum 以及 XAxis.Interval 属性:

chart1.ChartAreas[0].AxisX.Minimum = -10;
chart1.ChartAreas[0].AxisX.Maximum = 10;
chart1.ChartAreas[0].AxisX.Interval = 1;