如何绘制flash3D饼状图

                                                       《如何绘制flash3D图》

  在常见的管理类软件中,经常需要绘制简单明了的树状图,饼状图,都是为了方便统计,让客户对数据一目了然,那么首先看看如何绘制flash 3D饼状图

  1.首先看看参数

/// <summary>
/// 获得绘制Flash3D饼图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <returns></returns>

 我们传入的数Datatable,然后是标题,标签列在数据表的索引号,值列的索引号,应用程序的路径,图像的宽度和高度

代码
public static string Get3DPieChartCode(DataTable dt, string caption, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight)
{
StringBuilder sb
= new StringBuilder();
sb.AppendFormat(
@"<chart caption='{0}' palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='70' >", caption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");


return FusionCharts.RenderChart(applicationPath + "/Charts/Pie3D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

带有小标题的方法重载

代码
/// <summary>
/// 获得绘制Flash3D饼图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <param name="SubCaption">小标题</param>
/// <returns></returns>
public static string Get3DPieChartCode(DataTable dt, string caption, int lableColumnInDataTableIndex, int
valueColumnInDataTableIndex,
string applicationPath, int chartWidth, int chartHeight, string SubCaption)
{
StringBuilder sb
= new StringBuilder();
sb.AppendFormat(
@"<chart caption='{0}' palette='4' decimals='0' subcaption='{1}' enableSmartLabels='1' enableRotation='0' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='70' >", caption, SubCaption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][

lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");

return FusionCharts.RenderChart(applicationPath + "/Charts/Pie3D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);


}

带有标签字的长度方法重载

代码
/// <summary>
/// 获得绘制Flash3D饼图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <param name="labelLength">标签字的长度</param>
/// <returns></returns>
public static string Get3DPieChartCode(DataTable dt, string caption, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight, int labelLength)
{
StringBuilder sb
= new StringBuilder();
sb.AppendFormat(
@"<chart caption='{0}' palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='70' >", caption);

string label;
for (int i = 0; i < dt.Rows.Count; i++)
{
label
= dt.Rows[i][lableColumnInDataTableIndex].ToString();
if (label.Length > labelLength)
label
= label.Substring(0, labelLength) + "...";

sb.AppendFormat(
@"<set label='{0}' value='{1}' toolText='{2}' />", label, dt.Rows[i][valueColumnInDataTableIndex].ToString(), dt.Rows[i][lableColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");

return FusionCharts.RenderChart(applicationPath + "/Charts/Pie3D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

2:绘制flash3D圆环图图表的代码

圆形图
/// <summary>
/// 获得绘制Flash3D圆环图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <returns></returns>
public static string Get3DDoughnutChartCode(DataTable dt, string caption, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight)
{
StringBuilder sb
= new StringBuilder();
sb.AppendFormat(
@"<chart caption='{0}' palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='70' >", caption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");


return FusionCharts.RenderChart(applicationPath + "/Charts/Doughnut3D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

带小标题的方法重载

带小标题的方法重载

/// <summary>
/// 获得绘制Flash3D圆环图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <param name="subCaption">小标题</param>
/// <returns></returns>
public static string Get3DDoughnutChartCode(DataTable dt, string caption, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight, string subCaption)
{
StringBuilder sb
= new StringBuilder();
sb.AppendFormat(
@"<chart caption='{0}' subcaption='{1}' palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='0' startingAngle='70' >", caption, subCaption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");


return FusionCharts.RenderChart(applicationPath + "/Charts/Doughnut3D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

3.绘制2D图形

2D
/// <summary>
/// 获得绘制2D柱形图表的代码
/// </summary>
/// <param name="dt"></param>
/// <param name="caption"></param>
/// <param name="xAxisName"></param>
/// <param name="yAxisName"></param>
/// <param name="lableColumnInDataTableIndex"></param>
/// <param name="valueColumnInDataTableIndex"></param>
/// <param name="applicationPath"></param>
/// <param name="chartWidth"></param>
/// <param name="chartHeight"></param>
/// <returns></returns>
public static string Get2DColumnChartCode(DataTable dt, string caption, string xAxisName, string yAxisName, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight)
{
StringBuilder sb
= new StringBuilder();
//sb.AppendFormat(@"<chart palette='2' caption='{0}' xAxisName='{1}' yAxisName='{2}' showValues='0' decimals='0' formatNumberScale='0'>",caption,xAxisName,yAxisName);
//sb.AppendFormat(@"<chart palette='2' caption='{0}' clickUrl='{1}' showValues='1' decimals='0' formatNumberScale='0' baseFontSize='12' showBorder='0' bgColor='FFFFFF,FFFFFF'>",caption,clickUrl);
sb.AppendFormat(@"<chart palette='2' caption='{0}' showValues='1' decimals='0' useRoundEdges='1' formatNumberScale='0' baseFontSize='12' showBorder='0' bgColor='FFFFFF,FFFFFF'>", caption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");

return FusionCharts.RenderChart(applicationPath + "/Charts/Column2D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

4.绘制3D

3D
/// <summary>
/// 获得绘制3D柱形图表的代码
/// </summary>
/// <param name="dt"></param>
/// <param name="caption"></param>
/// <param name="xAxisName"></param>
/// <param name="yAxisName"></param>
/// <param name="lableColumnInDataTableIndex"></param>
/// <param name="valueColumnInDataTableIndex"></param>
/// <param name="applicationPath"></param>
/// <param name="chartWidth"></param>
/// <param name="chartHeight"></param>
/// <returns></returns>
public static string Get3DColumnChartCode(DataTable dt, string caption, string xAxisName, string yAxisName, int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int chartHeight)
{
StringBuilder sb
= new StringBuilder();
//sb.AppendFormat(@"<chart palette='2' caption='{0}' xAxisName='{1}' yAxisName='{2}' showValues='0' decimals='0' formatNumberScale='0'>",caption,xAxisName,yAxisName);
//sb.AppendFormat(@"<chart palette='2' caption='{0}' clickUrl='{1}' showValues='1' decimals='0' formatNumberScale='0' baseFontSize='12' showBorder='0'>",caption,clickUrl);
sb.AppendFormat(@"<chart palette='2' caption='{0}' showValues='1' decimals='0' useRoundEdges='1' formatNumberScale='0' baseFontSize='12' showBorder='0'>", caption);

for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<set label='{0}' value='{1}' />", dt.Rows[i][lableColumnInDataTableIndex].ToString(), dt.Rows[i][valueColumnInDataTableIndex].ToString());
}
sb.Append(
@"</chart>");

return FusionCharts.RenderChart(applicationPath + "/Charts/Column2D.swf", "", sb.ToString(), caption, chartWidth.ToString(), chartHeight.ToString(), false, false);
}

5.绘制多个3D柱形

多个3D柱形
public static string GetMS3DColumnChartCode(DataTable dt, string caption, string xAxisName, string
yAxisName,
int lableColumnInDataTableIndex, int valueColumnInDataTableIndex, string applicationPath, int chartWidth, int

chartHeight)
{
StringBuilder sb
= new StringBuilder();

sb.AppendFormat(
@"<chart palette='2 caption='{0}'showValues='1' decimals='0' useRoundEdges='1' formatNumberScale='0' baseFontSize='12' showBorder='0'>", caption);

sb.Append(
"<categories>");
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.AppendFormat(
@"<category label='{0}'/>", dt.Rows[i][lableColumnInDataTableIndex

].ToString());
}
sb.Append(
@"</categories>");

for (int i = 1; i < dt.Columns.Count; i++)
{
sb.AppendFormat(
@"<dataset seriesName='{0}' showValues='1'>", dt.Columns

[i].ColumnName.ToString());
for (int j = 0; j < dt.Rows.Count; j++)
{
sb.AppendFormat(
@"<set value='{0}'/>", dt.Rows[j][i].ToString());
}
sb.Append(
@"</dataset>");
}
sb.Append(
@"</chart>");
return FusionCharts.RenderChart(applicationPath + "/Charts/MSColumn2D.swf", "", sb.ToString(),
caption, chartWidth.ToString(), chartHeight.ToString(),
false, false);
}
}
/// <summary>
/// 获得绘制Flash3D饼图图表的代码
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="caption">标题</param>
/// <param name="lableColumnInDataTableIndex">标签列在数据表中的索引号</param>
/// <param name="valueColumnInDataTableIndex">值列在数据表中的索引号</param>
/// <param name="applicationPath">应用程序路径</param>
/// <param name="chartWidth">宽度</param>
/// <param name="chartHeight">高度</param>
/// <returns></returns>
posted @ 2010-09-17 11:19  marr  阅读(862)  评论(1编辑  收藏  举报