6

Microsoft Chart コントロールを使用して 3D グラフを作成しています。画像は次のとおりです。

代替テキスト
(出典: highoncoding.com )

各棒グラフの一番上にポイントを表示したい。棒グラフの上にある試験 1 のように、2 (2 ポイントのように) などを表示する必要があります。

コードは次のとおりです。

private void BindData() {

            var exams = new List<Exam>()
            {
                new Exam() { Name = "Exam 1", Point = 10 }, 
                new Exam() { Name = "Exam 2", Point = 12 }, 
                new Exam() { Name = "Exam 3", Point = 15 }, 
                new Exam() { Name = "Exam 4", Point = 2 }
            };

            var series = ExamsChart.Series["ExamSeries"];         



            series.YValueMembers = "Point"; 
            series.XValueMember = "Name"; 

            //series.MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Circle;
            //series.MarkerSize = 20;
            //series.LegendText = "hellow";
            //series.Label = "something";            


            var chartAreas = ExamsChart.ChartAreas["ChartArea1"];           


            ExamsChart.DataSource = exams;
            ExamsChart.DataBind(); 
        }

ここにhtmlコードがあります:

<asp:Chart ID="ExamsChart" Width="600" Height="320" runat="server">
      <Titles>
      <asp:Title Text="Exam Report" />
      </Titles>
        <Series>
          <asp:Series Name="ExamSeries" ChartType="Column">
          </asp:Series>
        </Series>
        <ChartAreas>

          <asp:ChartArea Name="ChartArea1">
          <Area3DStyle Enable3D="true"  WallWidth="10" />
          </asp:ChartArea>
        </ChartAreas>
      </asp:Chart>

アップデート:

答えは次のとおりです。

 foreach (var exam in exams) {

                var point = new DataPoint();
                point.SetValueXY(exam.Name, exam.Point);

                point.Label = exam.Name;

                series.Points.Add(point); 
            }  
4

1 に答える 1

4

MS チャートのサンプルから直接:

// Show data points values as labels
chart1.Series["Series1"].IsValueShownAsLabel = true;

// Set data point label
chart1.Series["Series1"].Points[2].Label = "My Point Label\nLabel Line #2";
于 2011-07-28T13:23:31.210 に答える