私はこのZedGraph制御コードを持っています:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
using Extracting_Frames;
namespace Lightnings_Extractor
{
public partial class Histogram_Graphs : Form
{
public long[] histogram;
public Histogram_Graphs()
{
InitializeComponent();
histogram = Form1.GetHistogramValue;
this.DoubleBuffered = true;
CreateGraph_GradientByZBars(zedGraphControl1);
}
private void Histogram_Graphs_Load(object sender, EventArgs e)
{
}
private void CreateGraph_GradientByZBars(ZedGraphControl z1)
{
GraphPane myPane = z1.GraphPane;
myPane.Title.Text = "Demonstration of Multi-Colored Bars with a Single BarItem";
myPane.XAxis.Title.Text = "Bar Number";
myPane.YAxis.Title.Text = "Value";
PointPairList list = new PointPairList();
Random rand = new Random();
for (int i = 0; i < histogram.Length; i++)
{
double x = (double)i + 1;
//double y = (double)i + 1;//rand.NextDouble() * 1000;
double z = i / 4.0;
list.Add(x, histogram[i], z);
}
BarItem myCurve = myPane.AddBar("Multi-Colored Bars", list, Color.Blue);
Color[] colors = { Color.Red, Color.Yellow, Color.Green, Color.Blue, Color.Purple };
myCurve.Bar.Fill = new Fill(colors);
myCurve.Bar.Fill.Type = FillType.GradientByZ;
myCurve.Bar.Fill.RangeMin = 0;
myCurve.Bar.Fill.RangeMax = 4;
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(220, 220, 255), 45);
myPane.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 225), 45);
// Tell ZedGraph to calculate the axis ranges
z1.AxisChange();
}
}
}
問題はループにあります:
for (int i = 0; i < histogram.Length; i++)
{
double x = (double)i + 1;
//double y = (double)i + 1;//rand.NextDouble() * 1000;
double z = i / 4.0;
list.Add(x, histogram[i], z);
}
Y以前はランダムでした。ここで、ヒストグラム リストの値を使用したいと思います。たとえば、index[0] には数字があります: 34118 そして index 1 1521 index[2] 522 リストには 256 のインデックスがあります。
グラフを見ると、吟遊詩人の身長が非常に短いことがわかります。
グラフの最初に 1 つの線が非常に高く表示されていますが、次の線はすべて非常に短いです。そして、Y 軸では横に 0 から 40 までの数字が表示され、X 軸には 0 から 300 までの数字が表示されます。
軸 Y i には 0 からヒストグラムの最高値までの数値が表示され、軸 X i には 0 から 256 が表示されます。
ここで大混乱。
どうすれば直せますか?
ありがとう。