Steema TeeChart Xamarin表格 - X轴日期时间标签

时间:2015-07-31 12:32:33

标签: xamarin xamarin.forms teechart

我正在与Steema TeeChart建立一个烛台图表。 我有这个类的数据:

public class Candles
    {
        public DateTime date { get; set; }
        public double open { get; set; }
        public double high { get; set; }
        public double low { get; set; }
        public double close { get; set; }

        public Candles (long date, double open, double high, double low, double close)
        {
            this.date = epoch2string(date/1000000);
            this.open = open;
            this.high = high;
            this.low = low;
            this.close = close;
        }

        public Candles(int date)
        {
            this.date = epoch2string(date);
        }

        private DateTime epoch2string(long epoch) {
            return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(epoch); 
        }
    }

我正在使用循环添加数据:

foreach (var item in candleList) {
            chartStyle.Add (item.open, item.high, item.low, item.close);
        }

但是我该如何将我的班级的“日期”值添加为X轴上的标签呢?

1 个答案:

答案 0 :(得分:2)

将日期作为DateTime值添加到每个蜡烛将自动执行此操作,例如:

  Steema.TeeChart.Styles.Candle candle1 = new Steema.TeeChart.Styles.Candle(tChart1.Chart);
  DateTime date = DateTime.Now;

  Random tmp = new Random();

  for (int i = 0; i < 10; i++)
  {
    double open = tmp.Next();
    double high = tmp.Next();
    double low = tmp.Next();
    double close = tmp.Next();

    candle1.Add(date.AddDays(i), open, high, low, close);
  }

在你的情况下应该是:

    foreach (var item in candleList) {
        chartStyle.Add (item.date, item.open, item.high, item.low, item.close);
    }

根据某些图表设置,这可能不是自动的,在这种情况下,您可以强制执行:

  candle1.XValues.DateTime = true;
  tChart1.Axes.Bottom.Labels.Style = AxisLabelStyle.Value;
  tChart1.Axes.Bottom.Labels.DateTimeFormat = "dd/MMM";

基于我的示例代码。

如果您想将日期添加为文字标签并删除周末空白,可以使用RemoveGaps property所有功能\欢迎!\图表样式\财务\蜡烛(OHLC)\轴中所示标签没有周末示例在TeeChart for .NET附带的功能演示中。我根据提到的演示here发布了一个示例。