创建饼形图之后如何改变各扇区颜色

liux466713 2010-08-09 05:03:19
用OWC11类库将数据库中读取的数据进行统计生成了饼形图,想知道如何才能修改各扇区属性,比如颜色.代码如下:

//饼状图,统计不同角色的用户数量的百分比
protected void Page_Load(object sender, EventArgs e)
{
//存储所有角色
List<string> roles = new List<string>();
//存储对应不同角色的用户数量
List<int> userquantity_uniquerole = new List<int>();

#region 数据库动态读出的数据赋给以上俩个List<int>变量
string query_roles_sql = "select distinct role from user";
try
{
MySqlConnection myConn = new MySqlConnection(conn_sql);
myConn.Open();

MySqlCommand myCommand = new MySqlCommand(query_roles_sql, myConn);
//myCommand.ExecuteNonQuery();
MySqlDataReader myReader = myCommand.ExecuteReader();

while (myReader.Read())
{
roles.Add(myReader["role"].ToString());
userquantity_uniquerole.Add(getCount(myReader["role"].ToString()));
}

myReader.Dispose();
myCommand.Dispose();
myConn.Close();
}
catch (MySqlException ee)
{
Console.Write("<script>alert(MySQL connection error:'" + ee.Message.ToString() + "')</script>");
}
#endregion

string strDataName = "";
string strData = "";

//创建图表空间
ChartSpace mychartSpace = new ChartSpace();
mychartSpace.Border.Color = "White";
//在图表空间内添加一个图表对象
ChChart mychart = mychartSpace.Charts.Add(0);
//设置每块饼的数据
for (int i = 0; i < userquantity_uniquerole.Count(); i++)
{
strDataName += roles[i].ToString() + "\t";
strData += userquantity_uniquerole[i].ToString() + "\t";
}
//设置图表类型,本例使用饼
mychart.Type = ChartChartTypeEnum.chChartTypePie;
//设置图表的一些属性
//是否需要图例
mychart.HasLegend = true;
//是否需要主题
mychart.HasTitle = true;
//主题内容
mychart.Title.Caption = "饼状图测试";
mychart.Title.Font.Size = 10;
mychart.Title.Font.Bold = false;
mychart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom;
mychart.Legend.Interior.Color = "f9f9f9";
mychart.Legend.Font.Size = 9;
mychart.Legend.Border.Color = "White";

//添加图表块
mychart.SeriesCollection.Add(0);
//设置图表块的属性
//分类属性
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
(int)ChartSpecialDataSourcesEnum.chDataLiteral, strDataName);
//值属性
mychart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues,
(int)ChartSpecialDataSourcesEnum.chDataLiteral, strData);
for (int j = 0; j < mychart.SeriesCollection[0].Points.Count; j++)
{
mychart.SeriesCollection[0].Points[j].Border.Color = "White";
}
//显示百分比
ChDataLabels mytb = mychart.SeriesCollection[0].DataLabelsCollection.Add();
mytb.HasPercentage = true;
//mytb.Border.Color = "White";
mytb.HasValue = true;
//生成图片
mychartSpace.ExportPicture(Server.MapPath(".") + @"\chart\pie_chart.gif", "gif", 400, 400);
//加载图片
Image1.ImageUrl = "chart/pie_chart.gif" + "?temp=" + new Random().Next(1, 100) + "";
}


网上查不到相关资料,明天就要用的,在线等着结贴呃,谢谢各位大大了
...全文
866 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liux466713 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wisdonlz 的回复:]
榴主过来结贴了:请参考这个asp.net 生成柱状图表(Owc11) 有说到颜色

应该就是它了Interior.Color
[/Quote]
是这个...我在楼上引错了...
liux466713 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 myhope88 的回复:]
这个没用过,但我感觉既然有这个类库了,应该也有提供可以设置相应属性的接口吧,你自己看那个类库的接口,自己分析下
[/Quote]
第一次说对了,第二第三次有一点问题,估计你没时间吧.哈哈.谢谢了
解决了,如下:
mychart.SeriesCollection[0].Points[j].Interior.Color = "colorname";
这块的j就代表各个扇形区
whb147 2010-08-09
  • 打赏
  • 举报
回复
你可以指定,不指定就是随即的
wuyq11 2010-08-09
  • 打赏
  • 举报
回复
wisdonlz 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wisdonlz 的回复:]
C# code

for (int j = 0; j < mychart.SeriesCollection[0].Points.Count; j++)
{
myChart.SeriesCollection[j].Interior.Color = myColor[j]; //这个myColor是颜色数组
}
[/Quote]
有点问题,额,反正就是循环赋值就可以了
wuyq11 2010-08-09
  • 打赏
  • 举报
回复
SeriesCollection[0].Points[0].Interior.Color
wisdonlz 2010-08-09
  • 打赏
  • 举报
回复

for (int j = 0; j < mychart.SeriesCollection[0].Points.Count; j++)
{
myChart.SeriesCollection[j].Interior.Color = myColor[j]; //这个myColor是颜色数组
}

yj5723187 2010-08-09
  • 打赏
  • 举报
回复
用过.。 但是没做过改变扇区颜色.。
你的数据不是动态绑定的么.。 你想动态去设置扇区颜色?
它本身就会分配颜色. 。 不过确实丑了点. 。
期待牛人的现身..。 学习.
wisdonlz 2010-08-09
  • 打赏
  • 举报
回复
榴主过来结贴了:请参考这个asp.net 生成柱状图表(Owc11)
有说到颜色

应该就是它了Interior.Color
myhope88 2010-08-09
  • 打赏
  • 举报
回复
这个没用过,但我感觉既然有这个类库了,应该也有提供可以设置相应属性的接口吧,你自己看那个类库的接口,自己分析下
liux466713 2010-08-09
  • 打赏
  • 举报
回复
等待解决...

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧