1

我试图创建一个图表,其 x 轴的对数刻度以 10 为底,范围从 1 到 1000。我似乎能够在设计时创建轴,但每当加载表单时,我都会收到一条错误消息,提示“图表面积轴 - 此轴不能使用对数刻度。

这是对 MSChart 控件的限制吗?为什么我无法在 X 轴上创建对数刻度?

4

4 回答 4

4

这是因为对于对数刻度,值必须大于零。Charting.CHARt 将空图表视为由零组成(我知道这很奇怪)。此错误可能非常难以调试。因此,这意味着如果任何轴是对数刻度,则图形不能为空。我通常做的是将轴设置为线性并在图表上绘制后立即更改它(并检查对数刻度上没有零或负值)。另外,请记住在清除轴和绘图之前将轴更改为线性。希望这可以帮助某人。

于 2013-03-09T13:45:45.527 回答
3

我建议使用 SuppressExceptions 属性,该属性允许忽略一些异常,也就是与轴中的零点连接且具有对数刻度的异常。我认为这是针对这种情况的最佳解决方案,而不是操纵数据。

chart.SuppressExceptions = true;
于 2015-02-23T21:02:18.943 回答
2

这不仅关乎零,还关乎让您的值具有正确的数据类型。假设您正在使用数据表中的值填充图表。如果您没有指定类型,.NET 将自动假定它们是字符串,因此无法绘制对数刻度。

数据表的不完整规范:

        PP = New DataTable
        PP.Columns.Add("X-value")
        PP.Columns.Add("Y-value")

完整规格:

        PP = New DataTable
        PP.Columns.Add("X-value", Type.GetType("System.Double"))
        PP.Columns.Add("Y-value", Type.GetType("System.Double"))

在第一个示例中,将引发异常。在第二个它不会。

于 2016-08-24T11:11:27.340 回答
0

并非所有图表类型都支持对数刻度;尝试将图表类型更改为折线图。

图表类型:http: //msdn.microsoft.com/en-us/library/dd489233.aspx

ChartType 属性:http: //msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.series.charttype.aspx

于 2013-03-05T07:50:24.087 回答