我使用.NET Winform版本teechart 4.1.2014.8126评估版。
当我使用下采样功能放大/缩小图表时,出了点问题。 请看下面的图片。
这是使用下采样功能的图表。我们可以看到约50~60个可见标记点。
这是一次放大图表。我们可以看到大约16~20个可见标记点。
为什么放大时可见计数会减少?当我放大图表时,我想要更多细节视图。
private void InitializeChart()
{
this.cursorTool1 = new Steema.TeeChart.Tools.CursorTool();//
this.tChart1.Tools.Add(this.cursorTool1);//
this.cursorTool1.FollowMouse = true;//
this.cursorTool1.Style = Steema.TeeChart.Tools.CursorToolStyles.Vertical;//
this.cursorTool1.Change += new Steema.TeeChart.Tools.CursorChangeEventHandler(this.cursorTool1_Change);//
CreateArrays();
tChart1.Aspect.View3D = false;
tChart1.Zoom.Direction = ZoomDirections.Both;//.Horizontal;//
tChart1.Series.Add(points = new Steema.TeeChart.Styles.Points());
tChart1.Series.Add(fastLine = new Steema.TeeChart.Styles.FastLine());
downSampling = new Steema.TeeChart.Functions.DownSampling(tChart1.Chart);
points.Add(xValues, yValues);
points.Active = false;
int pixelCount = 60;
downSampling.DisplayedPointCount = pixelCount;
downSampling.Method = Steema.TeeChart.Functions.DownSamplingMethod.MinMaxFirstLast;// Null;
fastLine.TreatNulls = Steema.TeeChart.Styles.TreatNullsStyle.DoNotPaint;
fastLine.DataSource = points;
fastLine.Function = downSampling;
this.tChart1.Axes.Custom.Add(new Steema.TeeChart.Axis(this.tChart1.Chart));//
this.tChart1[1].CustomVertAxis = this.tChart1.Axes.Custom[0];//
this.tChart1[0].CustomVertAxis = this.tChart1.Axes.Custom[0];//
this.fastLine.Marks.Visible = true;//
}
private void CreateArrays()
{
int length = 100000;
xValues = new Nullable<double>[length];
yValues = new Nullable<double>[length];
Random rnd = new Random();
for (int i = 0; i < length; i++)
{
xValues[i] = i;
yValues[i] = i;
}
}
private void tChart1_Zoomed(object sender, EventArgs e)
{
tChart1[1].CheckDataSource(); //series 1 is the function series
}
答案 0 :(得分:1)
这不是缺陷,而是预期的行为。如果我们将以下代码添加到您的示例中(使用相关的事件声明):
void tChart1_AfterDraw(object sender, Graphics3D g)
{
string s = "Count: " + tChart1[1].Count.ToString() + Utils.NewLine
+ "Displayed Count: " + (tChart1[1].LastVisibleIndex - tChart1[1].FirstVisibleIndex).ToString();
tChart1.Header.Text = s;
}
我们可以看到&#34;伯爵&#34;是您在变量&#34; pixelCount&#34;中定义的内容。和&#34;显示计数&#34;随着底轴最大值和最小值靠近在一起而减小。
我认为你期待&#34;显示计数&#34;随着底轴的最大值和最小值的增加越来越靠近,但只要系列&#34;计数&#34;就不会发生这种情况。保持原样。增加系列&#34;计数&#34;在缩放时你必须增加&#34; pixelCount&#34;的值。并重新计算。