我正在与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轴上的标签呢?
答案 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发布了一个示例。