我有一个 ASP.NET/C# Web 应用程序,我想以 Edward Tufte 的方式添加从业务数据生成非常好的图表的功能。
更具体地说,它是方框图,其中方框的大小和形状将与所表示的业务对象的某些值成比例,着色也将具有业务意义,等等。
这将是完全定制的(不是经典的图表设计),具有复杂的概念,例如网络(必须显示对象之间的关系,例如它们在分销网络中的位置)和容器,其大小取决于它们内部的大小。
我猜该图将在服务器端生成为图像文件,然后显示在页面中。
我可以使用什么库/组件来满足这种需求?
我有一个 ASP.NET/C# Web 应用程序,我想以 Edward Tufte 的方式添加从业务数据生成非常好的图表的功能。
更具体地说,它是方框图,其中方框的大小和形状将与所表示的业务对象的某些值成比例,着色也将具有业务意义,等等。
这将是完全定制的(不是经典的图表设计),具有复杂的概念,例如网络(必须显示对象之间的关系,例如它们在分销网络中的位置)和容器,其大小取决于它们内部的大小。
我猜该图将在服务器端生成为图像文件,然后显示在页面中。
我可以使用什么库/组件来满足这种需求?
您可以使用普通的旧画布在客户端执行此操作。
查看Processing.js。您可以像这样绘制箭头:
// Renders a vector object 'v' as an arrow and a location 'loc'
void drawVector(Vector3D v, Vector3D loc, float scayl) {
pushMatrix();
float arrowsize = 4;
// Translate to location to render vector
translate(loc.x,loc.y);
stroke(255);
// Call vector heading function to get direction (note that pointing up is a heading of 0) and rotate
rotate(v.heading2D());
// Calculate length of vector & scale it to be bigger or smaller if necessary
float len = v.magnitude()*scayl;
// Draw three lines to make an arrow (draw pointing up since we've rotate to the proper direction)
line(0,0,len,0);
line(len,0,len-arrowsize,+arrowsize/2);
line(len,0,len-arrowsize,-arrowsize/2);
popMatrix();
}
可能不符合您的确切要求,但Google Charts是一种仅通过构建 URL 即可快速而优雅地生成图表的方法。
http://www.telerik.com/products/silverlight/chart.aspx
http://www.telerik.com/products/aspnet-ajax/chart.aspx
也许这有帮助。