效果图:
1)显示百分比
Chart3.Series[
"Series1"].Label =
"#PERCENT{P}"
2)解决百分比设定后,legend的显示也为百分比的问题
首先确保你已经在设计器里将Chart设置为饼图形式
在chart3的属性,打开
legends集合,如果还没有legend成员添加一个,添加legend成员后,在其右边 打开
cellColumns集合 ,添加一个Column1,将ColumnType 选为SeriesSymbol,再添加一个Column2,将ColumnType属性选为Text,并将下面的Text属性打开,插入新关键字,选择x值,并删去原有的#LegendText,这样Legend第二列标签在显示时就会显示对应的x轴的值了。
例子:
前台代码(红褐色代码就是根据以上第二步得出来的):
<asp:Chart ID="Chart3" runat="server">
<Series>
<asp:Series Name="Series1" Legend="Legend1" ChartType="Pie" >
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
<Legends>
<asp:Legend Name="Legend1" >
<CellColumns>
<asp:LegendCellColumn ColumnType="SeriesSymbol" Name="Column1">
<Margins Left="15" Right="15" />
</asp:LegendCellColumn>
<asp:LegendCellColumn Name="Column2" Text="#VAL">
<Margins Left="15" Right="15" />
</asp:LegendCellColumn>
</CellColumns>
</asp:Legend>
</Legends>
</asp:Chart>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
//GridView1.DataSource = CreateDataTable();
//GridView1.DataBind();
Chart3.DataSource = CreateDataTable();
Chart3.Series["Series1"].Label = "#PERCENT{P2}";
Chart3.Series["Series1"].ChartType = SeriesChartType.Pie;
Chart3.Series["Series1"].YValueMembers = "项目收入";
Chart3.Series[0].XValueMember = "Date";
Chart3.DataBind();
// Set point labels
Chart3.Series["Series1"].IsValueShownAsLabel = true;
}
private DataTable CreateDataTable()
{
//Create a DataTable as the data source of the chart control
DataTable dt = new DataTable();
dt.TableName = "MyTable";
//Add three columns to the DataTable
dt.Columns.Add("Date");
dt.Columns.Add("项目收入");
dt.Columns.Add("其他收入");
DataRow dr;
//Add rows to the table which contains some random data for demonstration
dr = dt.NewRow();
dr["Date"] = "Jan";
dr["项目收入"] = 3731;
dr["其他收入"] = 4101;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Date"] = "Feb";
dr["项目收入"] = 6024;
dr["其他收入"] = 4324;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Date"] = "Mar";
dr["项目收入"] = 4935;
dr["其他收入"] = 2935;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Date"] = "Apr";
dr["项目收入"] = 4466;
dr["其他收入"] = 5644;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Date"] = "May";
dr["项目收入"] = 5117;
dr["其他收入"] = 5671;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Date"] = "Jun";
dr["项目收入"] = 3546;
dr["其他收入"] = 4646;
dt.Rows.Add(dr);
return dt;
}