以 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任何图片:(
如果您想将某个范围的值投影到另一个范围,您需要在这些值之间使用线性插值。首先确定旧的最小值和最大值 (MinX
和 MaxX
) 并定义新的限制 (-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.Minimum
和 XAxis.Maximum
以及 XAxis.Interval
属性:
chart1.ChartAreas[0].AxisX.Minimum = -10;
chart1.ChartAreas[0].AxisX.Maximum = 10;
chart1.ChartAreas[0].AxisX.Interval = 1;
我是 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任何图片:(
如果您想将某个范围的值投影到另一个范围,您需要在这些值之间使用线性插值。首先确定旧的最小值和最大值 (MinX
和 MaxX
) 并定义新的限制 (-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.Minimum
和 XAxis.Maximum
以及 XAxis.Interval
属性:
chart1.ChartAreas[0].AxisX.Minimum = -10;
chart1.ChartAreas[0].AxisX.Maximum = 10;
chart1.ChartAreas[0].AxisX.Interval = 1;