簡體   English   中英

如果Y值較大,C#圖表就會崩潰

[英]C# Chart crashes if there is a big Y-value

我從文件中讀取了一堆值,然后在圖表中顯示了數據。 但是,如果Y值很大,我的圖表就會崩潰。 圖表對象中是否有錯誤?

示例代碼來說明問題:

using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            chart1.Series[0].ChartType = SeriesChartType.Line;
            chart1.Series[0].Points.AddY(0);
            chart1.Series[0].Points.AddY(1);
            chart1.Series[0].Points.AddY(3);
            chart1.Series[0].Points.AddY(1);
            chart1.Series[0].Points.AddY(9);
            chart1.Series[0].Points.AddY(5);
            chart1.Series[0].Points.AddY(3.15486e+29); // This big value makes the chart crash
        }
    }
}

在此處輸入圖片說明

這是一個已知的錯誤?

AddY屬性不是Int,並且您傳入的值超出了嗎? 您沒有顯示錯誤,但我懷疑您得到了類似的信息:“對於Int32,值太大或太小”。

人們不能用任何圖表來繪制無窮大圖,所以就像試圖繪制3.15486e + 29這樣的大值時,圖表應用程序將崩潰。 有兩種方法可以解決此類問題:

  1. 將比例尺和過濾器輸入到繪制的范圍內,並可以對[Ymin to Ymax]說出有問題的圖表,超出此范圍的任何數據均顯示為無效

  2. 如果數據比例變化很大,請使用對數圖。

因此,問題在於圖表在內部使用小數。 因此,當我添加3.15486e + 29的Y值時,它不適合十進制類型范圍。

問題已解決(至少為什么圖表會出錯)。

:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM