2017-07-26 160 views
1

我有一个MVC应用程序,我试图在上显示甜甜圈图表。它的工作完全使用下面的代码,但我不能找到一个办法让图表标签图表MVC System.Web.Helpers甜甜圈图标签定位

private static void CreateChart(int width, int height, ArrayList xData, ArrayList yData, string title = "") 
    { 
     string myTheme = @"<Chart BackColor=""Transparent"" AntiAliasing=""All"" > 
           <ChartAreas> 
            <ChartArea Name=""Default"" BackColor=""Transparent""> 
             <AxisY> 
              <LabelStyle ForeColor=""#ffffff"" Font=""Helvetica Neue, 20 px"" /> 
             </AxisY> 
            </ChartArea> 
           </ChartAreas> 
           <Legends> 
            <Legend _Template_=""All"" BackColor=""Transparent"" Font=""Trebuchet MS, 18.25pt, style=Bold"" IsTextAutoFit=""False"" /> 
           </Legends> 
          </Chart>"; 

     new System.Web.Helpers.Chart(width: width, height: height, theme: myTheme) 
      .AddSeries("Default", chartType: "Doughnut", xValue: xData, yValues: yData) 
      .AddTitle(title) 
      .Write("png"); 
    } 

ChartLabelIssue

外显示你可以从我的代码看,我是主题化图表使用XML,但我还没有发现任何看起来可能有助于定位标签的东西。

这不是个大问题上面的图表上,但显示超过2场,标签都重叠在一起时:

ChartOverlappingLables

有谁知道如何更改标签的位置?还有为什么图表标题出现全部模糊的奖励点? :)

回答

1

使用自定义属性PieLabelStyle以避免重叠。至于模糊标题,主题中的垃圾太多了。清理。请看下图:

string myTheme = @"<Chart> 
       <ChartAreas> 
        <ChartArea Name=""Default""> 
        </ChartArea> 
       </ChartAreas> 
       <Series> 
        <Series Name=""Default"" CustomProperties=""PieLabelStyle = Outside"" Label=""Very very long label (#VAL)""></Series> 
       </Series> 
       <Titles> 
        <Title Name=""Default""></Title> 
       </Titles> 
      </Chart>"; 

enter image description here

+1

美丽!最高分;)感谢jstreet,你是​​一个拯救生命的人! – Nick