簡體   English   中英

如何使用圖表助手將百分比放在y軸標簽中

[英]How do I put percent in a y-axis label with chart helper

我想以百分比顯示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%的東西。 有人能幫我嗎?

您要查找的關鍵字不是一種格式,而是一種表達式#PERCENT

以下示例顯示了如何在該數據點的頂部和沿x軸顯示每個數據點的值及其百分比。 不過,沿y軸顯示百分比是沒有意義的。

在此處輸入圖片說明

該代碼從頭開始創建了一個柱形圖,包括一些隨機值。 數據點的Y值總計為517,btw。

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";
}

希望您可以將其轉換為代碼。.遇到問題時,請隨時提問!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM