使用MVC 5和实体框架创建饼图
问题描述:
任何人都有成功创建一个免费或非常便宜的MVC 5框架饼图吗?使用MVC 5和实体框架创建饼图
编辑: 这是我试图在视图中使用的代码,它不返回任何内容。
@{
var dataSet = new DataSet();
var dataView = new DataView(dataSet.Tables["Request"]);
var myChart = new System.Web.Helpers.Chart(width: 600, height:400)
.AddTitle("Status Summary")
.AddSeries(chartType: "Pie", name:"Requests", xValue: dataView, xField: "AnalystID", yValues: dataView, yFields: "RequestID")
.Write();
}
这是我的模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace DBMR.Models
{
public class RequestStatusCount
{
public string StatusName { get; set; }
public int StatusCount { get; set; }
}
这里是我的控制器:
public ActionResult TestChart()
{
var items = db.Requests
.Where(r => r.RequestID > 0)
.GroupBy(r => new { r.Status.Name, r.StatusID })
.Select(r => new RequestStatusCount
{
StatusName = r.Key.Name,
StatusCount = r.Count()
}).OrderByDescending(r => r.StatusCount);
return View(items);
}
答
MVC有,你可以开始使用System.Web.Helpers.dll如果你没有做一些花哨的高度互动图表帮手图表。
对于其他HTML5和JS /基于jQuery*/开放源码库结账
更新: 你需要提供阵列,而不只是扔dataView作为数据源,
在你身边ř方案中,
x值= AnalystID
y值=阵列请求ID
+0
我在原始文章中添加了一些上下文 – 2014-11-06 20:41:58
答
的查看我的简单的解决方案的阵列,虽然使用柱作为图表类型
public ActionResult DrawChart()
{
var report = Db.Candidateresults.GroupBy(i => i.subject)
.Select(g => new {
Subjects = g.Key,
TotalScore = g.Sum(i=>i.score)
});
var chart = new Chart(width: 500, height: 400, theme:ChartTheme.Green);
foreach(var item in report)
{
chart.AddTitle("Statistical Performance Report")
.AddSeries(
chartType: "column",
xValue: new[] {item.Subjects },
yValues: new[] {item.TotalScore }
).GetBytes("png");
}
return File("chart", "image/bytes");
}
有吨的方式来做到这一点,你至少应该指定一些更多的技术细节。既然你提到了ASP.NET,你是否想把服务器端的图表渲染成静态图像?还是你想让它在客户端用一些时髦的JavaScript库动态绘制?或者你想使用纯JavaScript? [Here](https://live.zoomdata.com/zoomdata/visualization?__target=embedded&key=52265abb6abdbcaa8c217789#51db7ad4e4b04caf9ab346db-51db7ad4e4b04caf9ab346d5)你可以找到一个用D3.js库构建的动态饼图的好例子。 – 2014-11-06 19:09:42
我在原始文章中添加了一些上下文。 – 2014-11-06 20:42:36
在发布任何问题之前,请阅读*之旅。 – 2014-11-06 21:42:30