将图例添加到c#的图表控件中

时间:2014-09-25 12:27:33

标签: c# charts mschart

我正在asp.net-mvc4中开发一个Visual Studio-2010 Web应用程序,我在其中从SQL服务器访问数据并制作一些行和pie-charts以获得更好的交互式视图。折线图没有任何问题,工作正常。我还需要使pie-chart三个值进行比较。我按以下方式pie-chart输出了我的数据

var c =  new Chart(width: 450, height: 350)
            //.AddTitle("Energy Consumption Plot")
            .AddLegend("E - Maschine", "Nebenverbraucher", "PTC")
            .AddSeries(
            chartType: "Pie",

            yValues: new[] {Maschine, Nebenverbraucher, PTC})
            .GetBytes("png")
            ;

        return File(c, "image/png");

下图显示了从上面代码生成的pie-chart

enter image description here

由于我在饼图中有三个不同的变量,我想在图例中看到所有变量,但它只显示第一个变量。为什么它显示分数?

后来,我修改了代码,我使用以下代码启用了xValue,

 var c =  new Chart(width: 450, height: 350)
            //.AddTitle("Energy Consumption Plot")
            .AddLegend()
            .AddSeries(
            chartType: "Pie",
            xValue: new[] { "E - Maschine", "Nebenverbraucher", "PTC" },
            yValues: new[] {Maschine, Nebenverbraucher, PTC})
            .GetBytes("png")
            ;

        return File(c, "image/png");

输出变为

enter image description here

似乎很好,但现在是另一个不受欢迎的事情,我不想看到pie-chart内的文字。我怎么才能在图表外面显示图例内的图例值。

2 个答案:

答案 0 :(得分:0)

我仍在等待我的问题的解决方案,但我通过另一种方式生成pie-chart。由此生成图是自动化的。我无法手动进行一些更改。例如,当鼠标悬停在图表上时,它会显示图表上的百分比值。它还会舍入该部分的值,这也很烦人。有没有办法在谷歌脚本中停止?我使用谷歌javascript制作饼图。该图更具动态性,并且具有非常好的可见性。

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("visualization", "1", { packages: ["corechart"] });
    google.setOnLoadCallback(drawChart);
    function drawChart() {


      var EMachine = 0.0;
      var Neben = 0.0;


        var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      ['E-Maschine', @ViewBag.EMachine],
      ['Nebenverbraucher', @ViewBag.Neben],
      ['PTC', @ViewBag.ptc],
      ]);

        var options = {
            title: ''
        };

        var chart = new google.visualization.PieChart(document.getElementById('piechart'));

        chart.draw(data, options);
    }
</script>

和情节看起来像

enter image description here

答案 1 :(得分:0)

假设图表中只有一个系列,如果要隐藏其标签,请尝试此操作。

c.Series[0]["PieLabelStyle"] = "Disabled";

看看是否能解决问题。