如何绘制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>