0

我有一些关于 TeeChart 能力的问题,我在 TeeChart 示例中找不到。

1) 是否可以使用不同比例的 Y 轴来做一个静态 X 轴,当图表到达窗口右侧时,它的最大值会增加,当前图表的可见部分向左滚动,滚动条允许查看图表的历史。(就像在 Welcome !\Chart styles\Standard\Line(Strip)\Realtime charting 中制作的一样,但每条线都有自己的轴(轴可能有不同的比例),X 轴仅在图表达到其最右边的某个固定值时滚动值,并且能够远程绘制到 X 的任何 previos 间隔(如通过时间轴移动的时间窗口))。

2)如果第一个可以,是否可以在图表上动态制作特殊标签(如图表上带有标签的水平线)。

3)如果我有一条折线或轮廓,我可以通过在一个字段中移动它来改变一个点值吗?(例如在插值的情况下,我可以通过鼠标在图表上的给定插值点向右移动它来更改 Y 值)。有什么特殊的信息可以做到这一点吗?贝塞尔曲线控制点的问题相同。

4

1 回答 1

1
  1. 是的,您可以在图表中拥有多个自定义轴,如教程 4 中所述,以及功能演示的All Features\Welcome !\Axes部分中的示例。对于您需要的滚动部分,我推荐在What's New?\Welcome !\New Chart Tools\ScrollPager Tool演示的 Scroll Pager 工具。TeeChart 的程序组中提供了教程和功能演示。

  2. 我建议为此使用 ColorLine 工具和 Annotation 工具。一个例子可以在这里找到。或者,您可以在图表画布中绘制自定义文本,如下例所示:

    public Form1()
    {
      InitializeComponent();
      InitializeChart();
    }
    
    private Steema.TeeChart.Tools.ColorLine colorLine1;
    
    private void InitializeChart()
    {
      tChart1.Aspect.View3D = false;
    
      tChart1.Series.Add(new Steema.TeeChart.Styles.HorizBar()).FillSampleValues();
    
      colorLine1 = new Steema.TeeChart.Tools.ColorLine(tChart1.Chart);
      colorLine1.Axis = tChart1.Axes.Bottom;
      colorLine1.Value = tChart1[0].MinXValue() + (tChart1[0].MaxXValue() - tChart1[0].MinXValue()) / 2;
    
      tChart1.AfterDraw += tChart1_AfterDraw;
    }
    
    void tChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
    {
      string text = "My custom caption";
      SizeF size = g.MeasureString(g.Font, text);
    
      Rectangle rect = tChart1.Chart.ChartRect;
      int x = tChart1.Axes.Bottom.CalcPosValue(colorLine1.Value) - (int)size.Height;
      int y = rect.Top + (int)size.Width + 5;
    
      g.Font.Color = Color.Red;
    
      g.RotateLabel(x, y, text, 90);
    }
    
  3. 有 DragPoint 工具。请参阅功能演示中的All Features\Welcome !\Tools\Drag Point示例。但是,使用此工具,您将能够更改源系列中的点,而不是计算系列中的点。多项式、等高线和贝塞尔序列/函数是根据给定的源数据计算的。您将无法直接修改这些计算值,您必须修改源数据系列以便重新计算它们。

于 2013-06-27T09:19:32.563 回答