c# - 使用烛台时的空白图表

标签 c# oxyplot

当尝试使用 Oxyplot 库绘制烛台图时,尽管我将模型分配给了绘图 View ,但它还是空的。

var plotModel1 = new PlotModel { Title = "Large Data Set (wide window)" };

var timeSpanAxis1 = new DateTimeAxis { Position = AxisPosition.Bottom };
plotModel1.Axes.Add(timeSpanAxis1);
var linearAxis1 = new LinearAxis { Position = AxisPosition.Left };
plotModel1.Axes.Add(linearAxis1);
var n = 10000;
var items = HighLowItemGenerator.MRProcess(n).ToArray();
var series = new CandleStickSeries
{
    Color = OxyColors.Black,
    IncreasingColor = OxyColors.DarkGreen,
    DecreasingColor = OxyColors.Red,
    DataFieldX = "Time",
    DataFieldHigh = "H",
    DataFieldLow = "L",
    DataFieldOpen = "O",
    DataFieldClose = "C",
    TrackerFormatString =
                         "High: {2:0.00}\nLow: {3:0.00}\nOpen: {4:0.00}\nClose: {5:0.00}",
    ItemsSource = items
};

timeSpanAxis1.Minimum = items[n - 200].X;
timeSpanAxis1.Maximum = items[n - 130].X;

linearAxis1.Minimum = items.Skip(n - 200).Take(70).Select(x => x.Low).Min();
linearAxis1.Maximum = items.Skip(n - 200).Take(70).Select(x => x.High).Max();

plotModel1.Series.Add(series);

timeSpanAxis1.AxisChanged += (sender, e) => AdjustYExtent(series, timeSpanAxis1, linearAxis1);

var controller = new PlotController();
controller.UnbindAll();
controller.BindMouseDown(OxyMouseButton.Left, PlotCommands.PanAt);

plotView1.Model = plotModel1;

奇怪的是,我刚刚从 Oxyplot series example 复制了一些内容。我还创建了minimal project与所描述的问题。

最佳答案

HighLowItemGenerator 生成的对象具有与 CandleStickSeries 定义中定义的不同的属性名称。检查调试器中的 items 对象以查看它。也许示例有点过时了。解决方案是更改系列定义以使用正确的属性,它应该是这样的:

var series = new CandleStickSeries
{
      Color = OxyColors.Black,
      IncreasingColor = OxyColors.DarkGreen,
      DecreasingColor = OxyColors.Red,
      DataFieldX = "X",
      DataFieldHigh = "High",
      DataFieldLow = "Low",
      DataFieldOpen = "Open",
      DataFieldClose = "Close",
      TrackerFormatString =
                           "High: {2:0.00}\nLow: {3:0.00}\nOpen: {4:0.00}\nClose: {5:0.00}",
      ItemsSource = items
};

关于c# - 使用烛台时的空白图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497877/

相关文章:

c# - 如何让 C# 显示阿拉伯语?

wpf - 如何将平移命令绑定(bind)到 WPF 中 OxyPlot 的鼠标左键?

c# - 模型失效时未捕获 Oxyplot 的鼠标事件

c# - 如何在oxyplot中绘制经验分布函数?

c# - 写入文件结构体的列表元素

c# - LINQ 查询执行投影,跳过或包装源在 IEnumerable.GetNext() 上抛出的异常

c# - 我怎样才能在 OxyPlot 中获得所有颜色?

c# - OxyPlot 在 PlotView/PlotModel 中被点击位置

c# - 如何显示指定附件的 Outlook 电子邮件附件预览

c# - 读取XML后,更改颜色不会影响属性更改