2016-11-15 103 views
1

我創建了一個基本的.net MVC 5應用程序,並使用System.Web.Helpers根據www.asp.net HERE上的信息生成一個列圖表。如何將值添加到MVC5圖表中的列頂部?

在頁面上的例子顯示在列頂部的標籤與字段的實際值(對不起,試圖上傳圖片,但我沒有足夠的代表嵌入圖像)。

下面的代碼在瀏覽器中生成圖表很好,但是,我似乎無法找到一種方法在示例中顯示的實際值的頂部添加實際值。

X和Y軸值由LINQ查詢填充。

我已經生成給我我們所需要的,除了上面列的實際值的結果...

它甚至有可能使用創建圖表的這種方法嗎?如果是這樣,我錯過了什麼?

查看

@{ 
    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; 
    } 

回答

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> 

enter image description here

+0

完美....我想,可能是我的方式d必須這樣做。看到你的榜樣幫助我成功。謝謝! – bobbyK12

+0

非常歡迎!投票決不會傷害任何人...... :) – jsanalytics

相關問題