我试图创建一个图表,它具有x轴的基数10对数刻度,范围从1到1000.我似乎能够在设计时创建轴,但无论何时加载表单,我都会收到一条错误消息说“图表区域轴 - 对数刻度不能用于此轴。
这是对MSChart控件的限制吗?为什么我无法在X轴上创建对数刻度?
答案 0 :(得分:3)
这是因为对于对数刻度,值必须大于零。 Charting.CHart将空图表视为由零组成(我知道它很奇怪)。调试此错误可能非常困难。因此,如果任何轴是对数标度,则表示图形不能为EMPTY。我通常做的是将轴设置为线性,并在绘制图形后立即更改它(并且在对数刻度上检查没有零或负值)。此外,请记住在清除轴和绘图之前将轴更改为线性。希望这有助于某人。
答案 1 :(得分:2)
我建议使用SuppressExceptions属性,该属性允许忽略一些异常,也就是那些用对数刻度在轴上用零连接的异常。我认为这是针对这种情况的最佳解决方案,而不是操纵数据。
chart.SuppressExceptions = true;
答案 2 :(得分:2)
它不仅仅是关于零,而且还有关于正确数据类型的值。假设您使用DataTable中的值填充图表。如果您还没有指定类型,.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"))
在第一个示例中,将抛出异常。在第二场比赛中,它赢了。
答案 3 :(得分:0)
并非所有图表类型都支持对数刻度;尝试更改图表类型,例如到折线图。