2017-03-08 12 views
1

ファイルから値の束を読み込んだ後、そのデータをグラフに表示します。しかし、本当に大きなY値があれば私のグラフはクラッシュします。グラフオブジェクトにバグはありますか?問題説明する大きな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 
     } 
    } 
} 

enter image description here

これは既知のバグですか?

+1

大きな値は無意味で表示することができないため、**グラフに追加する前に、**合理的な大きな値**に置き換えてください。 –

+0

Log Y軸スケールを試してみてください。私は、これが標準的な折れ線グラフでは機能しないというのは設計上のことだと思います。 –

+0

しかし、3.15486e + 28は動作しますが、3.15486e + 29ではないことが狂っています。 -/ –

答えて

-1

AddYプロパティがIntでなく、渡す値がこれを超えていますか?エラーは表示されていませんが、Int32の値が大きすぎるか小さすぎると思われます。

+0

いいえ、いいえ。これは__double__であり、エラーは '__decimal__の値が大きすぎるか小さすぎます' – TaW

+0

[link](https://msdn.microsoft.com/en-us/library/dd456331(v=vs.110).aspx)Isnこれは正しい名前空間ですか? – Taylby

+0

戻り値の型とパラメーターを混同しています。 – TaW

-1

チャートの無限をプロットできないので、チャートアプリケーションがクラッシュする3.15486e + 29のような大きな値をプロットしようとしています。 無効

として示されるべき質問[Ymaxとの値Ymin]この外部任意のデータに言うにチャートを範囲に

  1. 規模とフィルタ入力はプロット許容できるされる:このような問題に対処するには、2つの方法があります。

  2. データのスケーリングが大きく異なる場合は、対数グラフを使用します。

-1

チャートは内部的に小数点を使用するという問題があります。したがって、私は3.15486e + 29のY値を追加すると、10進形式の範囲に収まりません。

問題が解決しました(少なくともチャートがバグになる理由)。

:-)

+0

小数点にもなりません。すべての値(DataTimesなど)は内部的にdoubleに変換されます。 – TaW

関連する問題