[英]Percent value in y axis of Column Chart Microsoft chart control
我正在嘗試獲取柱形圖,我需要在y軸上具有百分比值,並且應該重新計算和縮放。
我看到了一些建議分配最小值和最大值( chart.ChartAreas[0].AxisY.Minimum=0
),但是它沒有根據百分比調整列高。 任何幫助將不勝感激。
以下是我到目前為止所做的
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軸百分比值。
這是一個示例,顯示有關圖表中數據的各種信息:
ToolTip
的X&Y值 Columns
值相對於總數的百分比 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") + "%");
}
當然,您可以隨意更改它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.