我已经创建了一个基本的.net MVC 5应用程序,并使用System.Web.Helpers根据www.asp.net HERE上的信息生成柱形图。
页面上的示例显示了列顶部的标签,其中包含该字段的实际值。(抱歉,尝试上传图片,但我没有足够高的代表来嵌入图片)。< / p>
下面的代码在浏览器中生成图表就好了,但是,我似乎无法找到在示例中显示的栏顶部添加实际值的方法。
LINQ查询正在填充X和Y轴值。
我生成的结果给出了我们需要的东西,除了列上方的实际值...
甚至可以使用这种创建图表的方法吗?如果是这样,我错过了什么?
查看
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div>
<img src="@Url.Action("ChartColumn")" alt="theChart" />
</div>
控制器:
public ActionResult ChartColumn()
{
var xValue = new ArrayList();
var yValue = new ArrayList();
var results = _context.SurveyResponses.DistinctBy(m => m.Q1).ToList();
results.ToList().ForEach(rs => xValue.Add(rs.Q1));
results.ToList().ForEach(rs => yValue.Add(rs.Q1.Length));
new System.Web.Helpers.Chart(width: 800, height: 400, theme: ChartTheme.Blue)
.AddTitle("Answers")
.AddSeries(chartType: "Column", xValue: xValue, yValues: yValue)
.Write("png");
return null;
}
答案 0 :(得分:1)
为此,您必须提供自己的自定义图表主题。特别是,请创建IsValueShownAsLabel="true"
,如下例所示:
var myChart = new Chart(width: 600, height: 400, themePath: "MyTheme2.xml")
.AddTitle("Product Chart")
.AddSeries(
name: "Products",
xValue: data, xField: "productname",
yValues: data, yFields: "quantity")
.Save("~/Images/Chart01.png", "png");
<强> MyTheme2.xml:强>
<?xml version="1.0" encoding="utf-8" ?>
<Chart>
<ChartAreas>
<ChartArea Name="Default">
<AxisX>
<MajorGrid Enabled="false"></MajorGrid>
</AxisX>
</ChartArea>
</ChartAreas>
<Series>
<Series Name="Products" IsValueShownAsLabel="true"></Series>
</Series>
</Chart>