Итак, моя проблема заключается в следующем. Мне нужно вставить столбчатую диаграмму с накоплением в веб-приложение. С ним не будут взаимодействовать, его нужно лишь периодически отображать и обновлять.
По сути, это был код, который я имел в классе контроллера для создания простой гистограммы.
public ActionResult CharterHelp(int _completed, int _remaining)
{
var workChart = new System.Web.Helpers.Chart(300, 500).AddTitle("Work Items");
workChart .AddSeries(chartType: "column",
xValue: new[] { "Completed", "Remaining" },
yValues: new[] { _completed, _remaining })
.Write("png");
return null;
}
Этот предыдущий код работал. Тем не менее, мне нужно представить его в виде столбца с накоплением и ... мне было трудно получить четкий ответ или руководство о том, как сделать хотя бы базовый ответ без использования проприетарного программного обеспечения для построения диаграмм.
Все те, что я нашел для простых C # и ASP.net, помогли мне до некоторой степени, но я не нашел тот, который дает мне эквивалентный код ".write (png)".
Я знаю, что мне нужно использовать метод SaveImage, но он выполняется на сервере, где я не могу просто сохранить файл в статическом месте. Мне нужно создать его на лету.
Это примерно столько, сколько я получил с обновленным кодом, и буду признателен за любую помощь по этому вопросу.
public ActionResult CharterHelp(int _completed, int _remaining)
{
System.Web.UI.DataVisualization.Charting.Chart workChart = new System.Web.UI.DataVisualization.Charting.Chart();
var seriesCompleted = new System.Web.UI.DataVisualization.Charting.Series
{
Name = "Completed",
Color = System.Drawing.Color.Green,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.StackedColumn
};
var seriesRemaining = new System.Web.UI.DataVisualization.Charting.Series
{
Name = "Remaining",
Color = System.Drawing.Color.Red,
IsVisibleInLegend = false,
IsXValueIndexed = true,
ChartType = SeriesChartType.StackedColumn
};
workChart.Series.Add(seriesCompleted);
workChart.Series.Add(seriesRemaining);
seriesRemaining.Points.AddY(_completed);
seriesCompleted.Points.AddY(_remaining);
var chartArea1 = new System.Web.UI.DataVisualization.Charting.ChartArea
{
Name = "ChartArea1"
};
workChart.ChartAreas.Add(chartArea1);
workChart.Width = 300;
workChart.Height = 500;
System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
workChart.SaveImage(imageStream, ChartImageFormat.Png);
return null;
}