C#图表轴对数不起作用

C#图表轴对数不起作用,c#,charts,mschart,logarithm,C#,Charts,Mschart,Logarithm,我试图在图表上画一个信号响应,我需要一个X和Y的对数刻度。 我定义了两个函数,一个用于X轴 private void Configure_Axis_X(bool Logaritmic, double Maximum, double Minimum, double Interval) { CH_EQ_Chart.ChartAreas[0].AxisX.IsLogarithmic = Logaritmic; CH_EQ_Chart.ChartAreas[0].AxisX.Minimu

我试图在图表上画一个信号响应,我需要一个X和Y的对数刻度。 我定义了两个函数,一个用于X轴

private void Configure_Axis_X(bool Logaritmic, double Maximum, double Minimum, double Interval)
{
    CH_EQ_Chart.ChartAreas[0].AxisX.IsLogarithmic = Logaritmic;
    CH_EQ_Chart.ChartAreas[0].AxisX.Minimum = Minimum;
    CH_EQ_Chart.ChartAreas[0].AxisX.Maximum = Maximum;
    CH_EQ_Chart.ChartAreas[0].AxisX.Interval = Interval;
    CH_EQ_Chart.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Black;
    CH_EQ_Chart.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = Graph.ChartDashStyle.Dash;
}
一个用于Y轴

private void Configure_Axis_Y(bool Logaritmic, double Maximum, double Minimum, double Interval)
{
    CH_EQ_Chart.ChartAreas[0].AxisY.IsLogarithmic = Logaritmic;
    CH_EQ_Chart.ChartAreas[0].AxisY.Minimum = Minimum;
    CH_EQ_Chart.ChartAreas[0].AxisY.Maximum = Maximum;
    CH_EQ_Chart.ChartAreas[0].AxisY.Interval = Interval;
    CH_EQ_Chart.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Black;
    CH_EQ_Chart.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = Graph.ChartDashStyle.Dash;
}
对draw的响应用分贝表示,我想用对数刻度表示Y

当我有一个带值的数组时,我得到了最小值和最大值,我尝试使用上面的函数

double Abs_Max = Math.Max(y.Max(), z.Max());
double Abs_Min = Math.Min(y.Min(), z.Min());
Configure_Axis_Y(true, Abs_Max + Abs_Max/10, Abs_Min + Abs_Min/10, 20);
但当我选择islogaritmic=true时,图形中会出现一个红十字。
如果我设置islogaritmic=false,则图片显示正确。

在绘图过程中,红十字是图表处理异常的方式。在处理日志比例时,最可能的罪魁祸首是一个或多个数据点具有零值或负值。在调试器中检查调用该方法时,Abs\u Min是什么,因为很可能您在调试器中得到了零值或负值。

您是对的,谢谢,现在我必须解决有关“如何绘制负值”的问题。