当前位置:编程学习 > C#/ASP.NET >>

chart图表自定义图例及求自动分配颜色的方法,有请高手

目前正在用VB.NET(2008)做一个图表程序,用的MS的chart控件,图表类型为散点图,现有问题如下:
1、因为最终图表很小,所画的点非常多,有1-7W点不等(最后根据每个点所在分段的颜色看整体图形的分布情况),所以图中标志点大小设的很小一般为1或2,设的太大则图形就失真了,问题是标志大小设完后图列的大小也跟着变,太小了就看不到了,或者图例的颜色就不好分辩了(饼图、柱图没有这个问题)。想问一下可不可以单设图例颜色块的大小。
cht.Series.Add(sCutlineName)
cht.Series(sCutlineName).MarkerSize = 1    ‘’标志点大小
cht.Series(sCutlineName).MarkerStyle = MarkerStyle.Square ‘’标志为方块
cht.Series(sCutlineName).ChartType = SeriesChartType.Point ‘图表类型 点图

2、因为第1个问题试了一天没成,所以现在用Legends加图例。目前是可以自定义图例了,但想问一下:
 图例默认一般为:颜色+图例文本,我想改为:图例文本1 +颜色+ 图例文本2,或者更复杂一些的,如何实现?
 因为画图时我没有指定cht.Series(sCutlineName)的颜色,程序会自动分配颜色,所以自定义图例从cht.Series(sCutlineName).Color取颜色时取不到(因为要与系统分配的颜色保持一致嘛,要不用户会疯的),除非前面手动指定颜色,后边自定义图例才能取到颜色,不知有没有更好的方法了?要不然我需要定义每个cht.Series的颜色,这样做的话会出现问题3。
            cht.Legends.Add(sKind)
            cht.Legends(sKind).CustomItems.Add(New LegendItem(sCutlineName, cht.Series(sCutlineName).Color, ""))  ‘这块取颜色如是自分配的则取不到,手工指定的可以
            cht.Legends(sKind).CustomItems(0).Tag = cht.Series(sCutlineName)

3、如要手动指定全部图例的颜色则会遇到一个问题,颜色怎么自动分配?我想这应该有个算法。比如我们用EXCEL做个图表,默认EXCEL会自动分配图例颜色,而且就算图例很多颜色一般也不会重复,看起来也容易分辨,这块如何实现的?谁知道算法什么的?网上找了半天没找到。

有请高手!
--------------------编程问答-------------------- 有木有高手牙,顶起! --------------------编程问答-------------------- --------------------编程问答-------------------- 空虚寂寞冷牙~~~~ --------------------编程问答-------------------- 騒良,你说了些什么?竟然回复被管理员删了!哈哈 --------------------编程问答-------------------- 同问,高手回答下 --------------------编程问答--------------------
引用 5 楼 GGG34674 的回复:
同问,高手回答下


无分无动力啊 你问问楼主吧 楼主肯定搞定了 --------------------编程问答--------------------
VB没接触过
不过chart控件做过图表 颜色的都可以在属性里找到的
补充:.NET技术 ,  图表区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,