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

sjb_dl 2012-05-06 09:28:31
目前正在用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会自动分配图例颜色,而且就算图例很多颜色一般也不会重复,看起来也容易分辨,这块如何实现的?谁知道算法什么的?网上找了半天没找到。

有请高手!
...全文
2363 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mike286 2014-07-17
  • 打赏
  • 举报
回复
问题2中有两个小问题,我也遇到过并已解决,可以分别参考以下两个链接: (1)问题2.1 参考Show Values in MS Chart Legends - Stack Overflow一帖子中作者本人的回答,该回答满足楼主的要求,并且还可以显示Point的值。只是原帖使用的语言是C#。 (2)问题2.2 参考Setting Microsoft Chart Series Colors - Alex Gorev's Weblog - Site Home - MSDN Blogs。该文解释的图表调色板的使用。 重点是,原文中提到:
引用
To determine the color assigned to the series or data point from the palette you can call chart1.ApplyPaletteColors() method and then check Series or DataPoint.Color property.
即:如果想获取应用调色板之后的颜色,需要先调用Chart.ApplyPaletteColors()方法,然后就可以通过Series.ColorDataPoint.Color获取到。
liangchengfck1 2012-12-12
  • 打赏
  • 举报
回复
VB没接触过 不过chart控件做过图表 颜色的都可以在属性里找到的
GGG34674 2012-12-11
  • 打赏
  • 举报
回复
同问,高手回答下
six-years 2012-12-11
  • 打赏
  • 举报
回复
引用 5 楼 GGG34674 的回复:
同问,高手回答下
无分无动力啊 你问问楼主吧 楼主肯定搞定了
sjb_dl 2012-05-10
  • 打赏
  • 举报
回复
騒良,你说了些什么?竟然回复被管理员删了!哈哈
sjb_dl 2012-05-08
  • 打赏
  • 举报
回复
空虚寂寞冷牙~~~~
sjb_dl 2012-05-07
  • 打赏
  • 举报
回复
有木有高手牙,顶起!

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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