Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用图表辅助工具在y轴标签中放置百分比_C#_Winforms_Charts_Label - Fatal编程技术网

C# 如何使用图表辅助工具在y轴标签中放置百分比

C# 如何使用图表辅助工具在y轴标签中放置百分比,c#,winforms,charts,label,C#,Winforms,Charts,Label,我想以百分比显示y轴标签 public Series CreateSeries(DateTime dataIni, DateTime dataFim, int idLista, SeriesChartType chartType) { Series seriesDetail = new Series(); seriesDetail.Name = "Setores"; seriesDetail.IsValueShownAsLabel =

我想以百分比显示y轴标签

   public Series CreateSeries(DateTime dataIni, DateTime dataFim, int idLista, SeriesChartType chartType)
    {
        Series seriesDetail = new Series();
        seriesDetail.Name = "Setores";
        seriesDetail.IsValueShownAsLabel = true;
        seriesDetail.IsVisibleInLegend = true;
        seriesDetail.Color = Color.FromArgb(198, 99, 99);
        seriesDetail.ChartType = chartType;
        seriesDetail.BorderWidth = 2;
        DataPoint point;

        var monitoramentos = ObterMonitoramentosProgramaSol(dataIni, dataFim, idLista);
        List<GraficoProgramaSol> dados = new List<GraficoProgramaSol>();
        foreach (var item in monitoramentos)
        {
            var comportamental = item.ListaItensVerificados.Where(w => w.Item.Subgrupo.Nome == EnumTipoSubgrupo.COMPORTAMENTAL.ToString());
            dados.Add(new GraficoProgramaSol
            {
                Setor = item.Setor.Descricao,
                NotaFinalSetor = (comportamental.Sum(s => s.Valor) + item.ListaItensVerificados.Sum(s => s.Valor)) * 100 / (comportamental.Sum(s => s.MaiorDisponivel()) + item.ListaItensVerificados.Sum(s => s.MaiorDisponivel()))
            });
            foreach (var item2 in dados.Where(i => i.Setor == item.Setor.Descricao).ToList())
            {
            point = new DataPoint();
            point.AxisLabel = item2.Setor;
            point.LabelFormat = "P";
            point.YValues = new double[] {item2.NotaFinalSetor};
            seriesDetail.Points.Add(point);
            }

        }
        seriesDetail.ChartArea = "Result Chart";
        return seriesDetail;
    }
我用LabelForma=p属性得到了百分比,但这个数字不是真的。我得到了这个格式的东西8.700.00%。我想要81%左右。 有人能帮我吗?

你要找的与其说是一种格式,不如说是一个表达式:百分比

下面是一个示例,演示如何在点顶部和沿x轴显示每个数据点的值及其百分比。但是,沿y轴显示百分比没有意义

代码从头开始创建一个柱状图,包括一些随机值。顺便说一句,数据点的Y值总计为517

private void button1_Click(object sender, EventArgs e)
{
    chart1.Series.Clear();
    Series S = chart1.Series.Add("S1");
    S.ChartType = SeriesChartType.Column;
    Random R = new Random(123);

    int sum = 0;
    for (int m = 1; m <= 10; m++)
    {
        int yval = R.Next(100);
        int p = S.Points.AddXY(m, yval);
        S.Points[p].Label = "#VAL \n #PERCENT";

        S.Points[p].AxisLabel = "#VAL \n #PERCENT";  // <-- !!
       sum += yval; 
    }
    chart1.ChartAreas[0].AxisX.Maximum = S.Points.Count;
    chart1.ChartAreas[0].AxisX.Minimum = 0;
    chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
    button1.Text = sum + " total";
}

我希望你能把它翻译成你的代码。。遇到问题时,请随时提问

Val是每个数据点的Y值。百分比是点对整个地震“点”y值的百分比。请注意,我的示例的总和不是100,而是517。太棒了!我不知道。我在代码中实现百分比表达式时遇到了一些困难。我必须从4个不同的值中取百分比。我已经这样做了Sums=>s.Valor+Sums=>s.Valor2*100/Sums=>s.BiggestValue1+Sums=>s.BiggestValue2,当BiggestValue在插入的每个值选项上获得最大值时。你能理解我吗?你能帮我吗?对不起我的英语。我不会说一口流利的语言。谢谢你的帮助。嗯,坦白说,我不得不承认我不明白。你能上传你所拥有的和你想要实现的东西的图片吗?有许多免费的文件上传服务,你可以使用,然后张贴一个链接。。另外,请尝试更新和编辑您的问题。”这些细节不属于评论!