2013-12-09 41 views
3

請參閱圖表更改圖表中的圖例文字?

enter image description here

現在,我要換傳說的文本(不顯示百分比值)相同的一系列數據xValues,比如我的例子:倫敦,東京,巴黎,......(仍然保留百分比值)。

你知道該怎麼做嗎?

我用下面的代碼:

int[] yValues = { 50, 20, 10, 20 }; 
string[] xValues = { "London", "Paris", "Newyork", "Tokyo"}; 

myChart.Series["Default"].Points.DataBindXY(xValues, yValues); 
myChart.Series[0].Label = "#PERCENT{P2}"; 

回答

4

這是一個相當劈,我希望你有一個很好的理由想要這個。您掛接到CustomizeLegend事件:

private void myChart_CustomizeLegend(object sender, CustomizeLegendEventArgs e) 
{ 
    foreach (LegendItem LI in e.LegendItems) 
    { 
     LI.Cells[1].Text = LI.Cells[1].Text.Replace('%', ' ');    
    } 
} 

的情況下,另一種版本您想要的城市名稱。請添加錯誤處理:

private void myChart_CustomizeLegend(object sender, CustomizeLegendEventArgs e) 
{ 
    string[] xValues = { "London", "Paris", "Newyork", "Tokyo" }; 

    for (int i = 0; i < e.LegendItems.Count; i++) 
    { 
     e.LegendItems[i].Cells[1].Text = xValues[i]; 
    } 
} 
6

我找到了答案,通過使用下面的代碼:

myChart.Series["Default"].Label = "#PERCENT"; 
myChart.Series[0].LegendText = "#VALX"; 
+0

這沒有爲我工作,我添加像這樣的數據'Series1.Points.AddXY(「付費」,8500)' – Smith

5

無需黑客攻擊,這是所有內置:

enter image description here

Series s = chart1.Series.Add("Pie"); 
s.ChartType = SeriesChartType.Pie; 
s.IsValueShownAsLabel = true; 

s.Points.AddXY(0, 12); 
s.Points.AddXY(1, 22); 
s.Points.AddXY(2, 42); 

s.Points[0].LegendText = "wo"; 
s.Points[1].LegendText = "wa"; 
s.Points[2].LegendText = "wi"; 
+1

這應該是最好的答案WER。一個餡餅只有幾個點,它很容易一個接一個地訪問它們。 –

+0

我在什麼時候添加'... LegendText'?它出於某種原因沒有顯示在我的圖表中。 – Si8

+0

只要DataPoints就位,它確實沒有關係。注意Pie和所有其他charttype的__fundamantal區別___:對於Pie,Legend將爲每個Point顯示一些文本,對於所有其他類型,它將顯示與系列相關的文本! – TaW