2012-03-14 32 views
1

我正在構建一個包含System.Web.UI.DataVisualization.Charting的柱狀圖,並且想要顯示一條虛線以表示平均值。 StripeLine似乎正是我正在尋找的東西,除了它位於列之下/之後(請參閱示例)。將StripeLine放置在系列頂部(調整Z-索引/ Z-順序)

有沒有辦法調整StripeLine的「Z-Index」,使其顯示在Series之前/之上?

我沒有看到此屬性和更改順序我添加SeriesStripeLine沒有什麼區別。

Sample Chart

+0

它看起來不像你可以......我所看到的只是StripLines的Z順序,它以編程方式確定: 「StripLine對象的Z順序由其在StripLinesCollection對象中的出現順序決定。這意味着第一次出現是先畫出來的;第二次出現是第二次,等等。「 我認爲他們有他們自己的單獨的訂單,總是在圖表區域後面 – tedski 2012-03-14 12:41:47

回答

7

您可以使用標註

double avg = Chart1.Series[0].Points.Average(p => p.XValue); 
double lineHeight = avg; 
HorizontalLineAnnotation ann = new HorizontalLineAnnotation(); 
ann.AxisX = Chart1.ChartAreas[0].AxisX; 
ann.AxisY = Chart1.ChartAreas[0].AxisY; 
ann.IsSizeAlwaysRelative = false; 
ann.AnchorY = lineHeight; 
ann.IsInfinitive = true; 
ann.ClipToChartArea = Chart1.ChartAreas[0].Name; ann.LineColor = Color.Red; ann.LineWidth = 3; 
Chart1.Annotations.Add(ann); 

HTML代碼

<asp:Chart runat="server" ID="Chart1" ImageStorageMode="UseImageLocation" Width="800px" Height="400px" OnClick="Chart1_Click"> 
    <ChartAreas > 
    <asp:ChartArea></asp:ChartArea> 
    </ChartAreas> 
    <series> 
      <asp:Series Name="Students" BorderColor="180, 26, 59, 105"> 
      <Points> 
       <asp:DataPoint AxisLabel="jon" XValue="5" YValues="4" /> 
       <asp:DataPoint AxisLabel="kon" XValue="15" YValues="44" /> 
       <asp:DataPoint AxisLabel="pol" XValue="85" YValues="90" /> 
      </Points> 
      </asp:Series>       
     </series> 
</asp:Chart> 

規範文本批註

TextAnnotation txtAnn = new TextAnnotation(); 
txtAnn.AxisX = Chart1.ChartAreas[0].AxisX; 
txtAnn.AxisY = Chart1.ChartAreas[0].AxisY; 
txtAnn.IsSizeAlwaysRelative = false; 
txtAnn.AnchorY = lineHeight; 
txtAnn.AnchorX = Chart1.Series[0].Points.Last().XValue; 
txtAnn.AnchorAlignment = ContentAlignment.BottomLeft; 
txtAnn.Text = "DivisionOne(35.5)"; 
txtAnn.ClipToChartArea = Chart1.ChartAreas[0].Name; txtAnn.ForeColor = Color.Red; 
Chart1.Annotations.Add(txtAnn); 

你可以得到更多的資料,請離子這裏

More Information About Annotations

Chart Image

+0

看起來不像我可以添加標題/文本標題......雖然您的確回答我的問題,謝謝 – Greg 2012-03-15 03:36:22

+0

你可以使用文本註釋 – Quantbuff 2012-03-15 04:05:09

+0

啊,謝謝,我會加油,如果你可以請添加到你的答案。 – Greg 2012-03-15 17:05:42

0

您可以只使用stripeline的文本屬性

Chart1.ChartAreas( 「ChartArea1」)。AxisY.StripLines(0)。文本= 「行 標題」