将OxyPlot图表导出到asp.net phoject中的png

时间:2017-12-09 13:54:00

标签: c# asp.net oxyplot

我正在使用asp.net生成pdf文件。在pdf我必须显示情节。我决定使用oxyplot将其导出为png并以pdf格式插入。文档说使用PlotModel,用系列和轴填充它,然后使用PngExporting对象简单地导出。但是当我尝试生成它时,除轴外没有任何东西。

我正在使用的代码:

var _plotModel = new OxyPlot.PlotModel()
            {
                PlotAreaBorderColor = OxyPlot.OxyColors.Transparent,
                LegendBorder = OxyPlot.OxyColors.Transparent,
                TitleToolTip = "Temperature",
                Culture = new System.Globalization.CultureInfo("ru-Ru"),
                Series =
                {
                    new OxyPlot.Series.LineSeries()
                    {
                        ItemsSource = new List<SimplePointModel>
                        {
                            new SimplePointModel {  Date = DateTime.Now, Temperature = 36.6f },
                            new SimplePointModel {  Date = DateTime.Now.AddDays(1), Temperature = 42.6f },
                            new SimplePointModel {  Date = DateTime.Now.AddDays(2), Temperature = 48.6f },
                        },
                        MarkerFill = OxyPlot.OxyColor.Parse("#A9CF9C"),
                        MarkerType = OxyPlot.MarkerType.Circle,
                        MarkerSize = item.ListSegments[0].Count() == 1 ? 2 : 1,
                        DataFieldX = "Date",
                        DataFieldY = "Temperature",
                        XAxisKey = "Date",
                        YAxisKey = "Temperature",
                        Color = OxyPlot.OxyColor.Parse("#A9CF9C"),
                    }
                },
                Axes =
                {
                    new OxyPlot.Axes.DateTimeAxis()
                    {
                        Position = OxyPlot.Axes.AxisPosition.Bottom,
                        Key = "Date",
                        ToolTip = "Temperature",
                        AbsoluteMinimum = OxyPlot.Axes.Axis.ToDouble(DateTime.Now.Date),
                        AbsoluteMaximum = OxyPlot.Axes.Axis.ToDouble(DateTime.Now.AddDays(10000))
                    },
                    new OxyPlot.Axes.LinearAxis()
                    {
                        Position = OxyPlot.Axes.AxisPosition.Left,
                        Key = "Temperature",
                        ToolTip = "Temperature",
                        IsZoomEnabled = false,
                        IsPanEnabled = false,
                    }
                }
            };
            using (var stream = System.IO.File.Create(Path.Combine(folder, "temp.png")))
            {
                PngExporter.Export(_plotModel, stream, 800, 400, OxyPlot.OxyColors.Transparent);
            }

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:我们必须将数据加载到系列对象中的 Points 列表参数,而不是 ItemSource 参数。移动版库中使用的 ItemSource 参数。