【发布时间】:2018-08-30 20:26:11
【问题描述】:
所以,我的问题是这样的。我必须将堆积柱形图插入网络应用程序。它不会被交互,它只需要偶尔显示和刷新。
最基本的,这是我在控制器类中用于生成简单条形图的代码。
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;
}
【问题讨论】:
标签: c# asp.net charts stacked-chart