[英]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這樣的大值時,圖表應用程序將崩潰。 有兩種方法可以解決此類問題:
將比例尺和過濾器輸入到繪制的范圍內,並可以對[Ymin to Ymax]說出有問題的圖表,超出此范圍的任何數據均顯示為無效
如果數據比例變化很大,請使用對數圖。
因此,問題在於圖表在內部使用小數。 因此,當我添加3.15486e + 29的Y值時,它不適合十進制類型范圍。
問題已解決(至少為什么圖表會出錯)。
:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.