3

次のプロパティを持つグラフを作成する必要があります
。 X 軸は学校名です。
Y 軸はクラス名です。
Point (x,y) には、色が生徒数を表すドットを配置する必要があります (暗いほど生徒数が多いことを意味します)。
私はZedGraphを使用しています(そのサンプルを使用:http://zedgraph.org/wiki/index.php?title=Gradient-By-Value_Demo)が、ドットを配置する方法がわかりません(そしてそれが暗いと判断する方法がわかりません-level) を正しい位置に (学校の名前とクラスの名前と比較してください)。
また、X 軸と Y 軸に学校名とクラス名を表示する方法がわかりません。
どうやってやるの?(zedGraph にある必要はありません)。
どうもありがとう!

4

2 に答える 2

3

問題は、ZedGraph がテキスト型のスケールを少し奇妙な方法で扱っていることです。そのため、テキスト型の両方のスケールがある場合、データを正しく表示することはほとんど不可能です。

しかし、ZG を少し騙すことはできます。

全体のトリックは、2 番目の偽のスケールを表示しながら、非表示のスケールの座標を使用してデータを表示することです。

string[] schools = { "A", "B", "C" };
string[] classes = { "cl. 1", "cl. 2", "cl. 3" };

var pane = zg1.GraphPane;
Random x = new Random();

// Hide the basic scale, show the second with text labels
pane.X2Axis.Type = AxisType.Text;
pane.X2Axis.IsVisible = true;
pane.Y2Axis.Type = AxisType.Text;
pane.Y2Axis.IsVisible = true;
pane.XAxis.Scale.IsVisible = false;
pane.YAxis.Scale.IsVisible = false;

pane.X2Axis.Scale.TextLabels = schools;
pane.Y2Axis.Scale.TextLabels = classes;

// Main problem - synchronize the scales correctly            
pane.XAxis.Scale.Min = -0.5;
pane.XAxis.Scale.Max = schools.Count() - 0.5;
pane.YAxis.Scale.Min = -0.5;
pane.YAxis.Scale.Max = classes.Count() - 0.5;

pane.YAxis.MajorGrid.IsZeroLine = false;

// generate some fake data
PointPairList list = new PointPairList();
   for(int i=0;i<schools.Count();i++)
      for (int j = 0; j < classes.Count(); j++)
      {
          list.Add(new PointPair(i, j, x.Next(30)));
      }

   var pointsCurve = pane.AddCurve("", list, Color.Transparent);
   pointsCurve.Line.IsVisible = false;
   // Create your own scale of colors.
   pointsCurve.Symbol.Fill = new Fill(new Color[] { Color.Blue, Color.Green, Color.Red });
   pointsCurve.Symbol.Fill.Type = FillType.GradientByZ;
   pointsCurve.Symbol.Fill.RangeMin = 0;
   pointsCurve.Symbol.Fill.RangeMax = 30;
   pointsCurve.Symbol.Type = SymbolType.Circle;

            pane.AxisChange();
            zg1.Refresh();
于 2010-01-14T11:23:10.497 に答える
1

私のプロジェクトではこれをまったく行いませんが、いくつかの基準に基づいて色を変更します。変更は非常に簡単です。グラフ クラスで stochfit.sourceforge.net の svn デポを見てください。また、私のデポにある zedgraph のバージョンを確認することもできます。一部の画像キャプチャとスケーリングのバグが修正されています。

于 2010-01-13T12:01:13.190 に答える