柱形图Microsoft图表控件的y轴上的百分比值 [英] Percent value in y axis of Column Chart Microsoft chart control

查看:143
本文介绍了柱形图Microsoft图表控件的y轴上的百分比值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取柱状图,我需要在y轴上具有百分比值,并且应该重新计算和缩放.

I am trying to get Column charts, where I need to have percentage value in y axis and should recalculate and scale.

我已经看到一些建议来分配最小值和最大值( chart.ChartAreas [0] .AxisY.Minimum = 0 ),但是它没有根据百分比来调整列的高度.任何帮助将不胜感激.

I have seen some suggestion to assign minimum and maximum value ( chart.ChartAreas[0].AxisY.Minimum=0) but it's not adjusting the column height according to the percentage. Any help will be appreciated.

以下是我到目前为止所做的

Below is what I have done so far

 foreach (var value in labels)
   {

     chart.Legends[value].Alignment = StringAlignment.Center;
     chart.Legends[value].Docking = Docking.Bottom;
     chart.Series[value].ChartType = SeriesChartType.Column;
     chart.Series[value].IsValueShownAsLabel = true;
     chart.Series[value].Label = "#PERCENT{P0}";

     chart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
     chart.ChartAreas[0].AxisY.MajorGrid.Enabled =false;
     chart.ChartAreas[0].AxisY.Minimum=0;
      // chart.ChartAreas[0].RecalculateAxesScale();

      chart.BringToFront();

      if (count == 0 && comp.Value != null)
        chart.Series[value].Points.Add(comp.Value[0]);
      else if (count >= 1 && comp.Value != null && comp.Value.Count() > count)
        chart.Series[value].Points.Add(comp.Value[count]);
      else
        chart.Series[value].Points.Add(0);

          count++;
}

Y轴应显示百分比,列高应调整为y轴百分比值.

The Y axis should show the percentage and the columns height should be adjusted to the y axis percentage value.

推荐答案

以下是显示有关图表中数据的各种信息的示例:

Here is an example that shows all sorts of info about the data in the chart:

  • 工具提示
  • 中的X& Y值
  • 上的值占总数的百分比
  • 相对于 Y轴
  • 的最大值的百分比
  • The X&Y-Values in a ToolTip
  • The percentages of the the values against the total on the Columns
  • The percentage against the maximum at the Y-Axis

Series S = chart1.Series[0];
ChartArea CA = chart1.ChartAreas[0];
Axis AY = CA.AxisY;

S.Points.AddXY(1, 10);      S.Points.AddXY(2, 40);
S.Points.AddXY(3, 50);      S.Points.AddXY(4, 100);
S.Points.AddXY(5, 111);  

S.IsValueShownAsLabel = true;
S.Label = "#PERCENT{P0}";

S.ToolTip = "#VALX{#.##}" + " : " + "#VALY1{#.##}";

double max = S.Points.Max(x => x.YValues[0]);

for (int i = 0; i < S.Points.Count; i++)
{
    DataPoint dp =  S.Points[i];
    double y0 = S.Points[i].YValues[0];
    AY.CustomLabels.Add(y0, y0 + 1, (y0 / max * 100f).ToString("0.0") + "%");
}

当然,您可以随意更改它..

Of course you can change it all around as you please..

这篇关于柱形图Microsoft图表控件的y轴上的百分比值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆