我需要创建一种具有不同半径切片的饼图 - 类似于:
http://www.andypope.info/charts/pieradius.htm。
我还想在上面覆盖第二个系列,作为一条线。
该解决方案需要对 ASP.NET MVC 友好 - 我需要能够将“向下钻取”链接与切片相关联。
如果没有现成的解决方案,是否可以将 Microsoft Chart Controls 饼图自定义到这种程度?或者这只是太多的自定义,我最终会花费更多的时间来对抗现有代码而不是编写自己的代码?
我需要创建一种具有不同半径切片的饼图 - 类似于:
http://www.andypope.info/charts/pieradius.htm。
我还想在上面覆盖第二个系列,作为一条线。
该解决方案需要对 ASP.NET MVC 友好 - 我需要能够将“向下钻取”链接与切片相关联。
如果没有现成的解决方案,是否可以将 Microsoft Chart Controls 饼图自定义到这种程度?或者这只是太多的自定义,我最终会花费更多的时间来对抗现有代码而不是编写自己的代码?
jqPlot 非常好。我们花了不到一个小时的时间来制作漂亮的图表并开始运行。这是一个纯js实现。他们可以在所有浏览器甚至手机上工作。
您是否尝试过查看http://plugins.jquery.com/project/gchart?考虑到它是 jquery,它应该是 MVC 友好的。我不确定它是否能够完全满足您的要求,但它可能值得一看。
这可能会帮助你 ** 控制器***
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApp.Models;
using System.Web.Helpers;
namespace MvcApp.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public ActionResult ChartDispaly()
{
ChartImage();
return View();
}
public void ChartImage() {
IEnumerable<Product> productList = new List<Product> {
new Product {Name = "Kayak", Category = "Watersports", Price = 275m},
new Product {Name = "Lifejacket", Category = "Watersports", Price = 48.95m},
new Product {Name = "Soccer ball", Category = "Football", Price = 19.50m},
new Product {Name = "Corner flags", Category = "Football", Price = 34.95m},
new Product {Name = "Stadium", Category = "Football", Price = 150m},
new Product {Name = "Thinking cap", Category = "Chess", Price = 16m}
};
Chart chart = new Chart(400, 200,
@"<Chart BackColor=""Gray"" BackSecondaryColor=""WhiteSmoke""
BackGradientStyle=""DiagonalRight"" AntiAliasing=""All""
BorderlineDashStyle = ""Solid"" BorderlineColor = ""Gray"">
<BorderSkin SkinStyle = ""Emboss"" />
<ChartAreas>
<ChartArea Name=""Default"" _Template_=""All"" BackColor=""Wheat""
BackSecondaryColor=""White"" BorderColor=""64, 64, 64, 64""
BorderDashStyle=""Solid"" ShadowColor=""Transparent"">
</ChartArea>
</ChartAreas>
</Chart>");
chart.AddSeries(
chartType: "Pie",
yValues: productList.Select(e => e.Price).ToArray(),
xValue: productList.Select(e => e.Name).ToArray()
);
chart.Write();
}
}
}
*型号* ****
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcApp.Models
{
public class Product
{
public string Name { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
}
Webmatrix 已内置图表支持。
我不知道它是否支持具有不同切片半径的饼图。我在当前的 asp.net mvc 项目中使用了 WebGrid(也来自 Webmatrix),并且运行良好。
以下是一些有用的链接: