Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共22 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:柱形图的颜色如何更改

1楼
floor2 发表于:2009/8/27 17:12:00
 在窗口中添加一个柱形图,根据颜色来统计数量,现在想把统计红色数量的柱,变成红色,绿色数量的柱子颜色变为绿色,该如何设置?谢谢.
2楼
狐狸爸爸 发表于:2009/8/27 17:18:00
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
For n As integer = 0 To 1
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 10 '图系包括10个数据点
    For i As integer = 0 to 9 '指定每个数据点的位置
        Series.X(i) = i '指定水平坐标
        Series.Y(i) = i + n * 2 + Rand.Next(5) '垂直坐标用随机数生成
    Next
Next
Chart.SeriesList(0).FillColor= Color.Red
Chart.SeriesList(1).FillColor= Color.Green
3楼
floor2 发表于:2009/8/27 17:54:00
Series.Length = 8 '新增图系包括10个数据点
For i As integer = 0 to 7 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(1) = Vars("红")
    Chart.AxisX.SetValueLabel(1,"红")
    Series.Y(2) = Vars("黄")
    Chart.AxisX.SetValueLabel(2,"黄")
    Series.Y(3) = Vars("蓝")
    Chart.AxisX.SetValueLabel(3,"蓝")
    Series.Y(4) = Vars("绿")
    Chart.AxisX.SetValueLabel(4,"绿")
    Series.Y(5) = Vars("灰")
    Chart.AxisX.SetValueLabel(5,"灰")
    Series.Y(6) = Vars("白")
    Chart.AxisX.SetValueLabel(6,"白")
    Series.Y(7) = Vars("咖啡")
    Chart.AxisX.SetValueLabel(7,"咖啡")
    Series.Y(0) = Vars("黑")
    Chart.AxisX.SetValueLabel(0,"黑")
next
Chart.SeriesList(0).fillColor= Color.black
Chart.SeriesList(7).fillColor= color.red
Chart.SeriesList(6).fillColor= Color.white
Chart.SeriesList(5).fillColor= Color.Red
Chart.SeriesList(4).fillColor= Color.green
Chart.SeriesList(3).fillColor= Color.blue
Chart.SeriesList(2).fillColor= Color.yellow
Chart.SeriesList(1).fillColor= Color.Red


把chart.serieslist().fillcolor...这些语句放进去就不行
本来是可以的,是哪里出问题了
4楼
狐狸爸爸 发表于:2009/8/27 20:05:00
Series不是凭空生成的,要用Add方法增加的

For i As integer = 0 to 7 '指定每个数据点的位置
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 8 '新增图系包括10个数据点
    .....
Next
[此贴子已经被作者于2009-8-27 20:05:28编辑过]
5楼
floor2 发表于:2009/8/27 21:45:00
把代码更改了下,麻烦看下这样的代码哪里有问题,老是出错  “未将对象引用设置到对象的实例”
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("订单管理") '定义一个变量tbl引用数据表
Dim lst As List(Of String)
lst.add("红")' tbl.GetUniqueValues("", "产品") '获得产品名称集合
lst.add("黑")
lst.add("白")
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = lst.Count '设置图系的长度
For i As integer = 0 to lst.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(重量)","[产品] like '"*lst(i)*"' ") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
6楼
狐狸爸爸 发表于:2009/8/27 21:52:00

同一个图系的颜色是相同的,不能单独指定图系某个点的颜色.
你只有一个图系,自然下面的代码要出错,因为图系1到7是不存在的,只有图系0

解决办法:

除非你增加8个图系,每个图系一个点

7楼
floor2 发表于:2009/8/27 21:55:00
 哦 明白了,我呆会再看下图系的颜色问题,
下午看了帮助,发觉我原来的代码有问题,就参考帮助里的代码,但是老出问题,狐爸帮我看下,是什么问题
8楼
狐狸爸爸 发表于:2009/8/27 21:59:00
Dim lst As List(Of String)
lst.add("红")
lst.add("黑")
lst.add("白")

应该改为:

Dim lst As New List(Of String)
lst.add("红")
lst.add("黑")
lst.add("白")

其他自己研究
[此贴子已经被作者于2009-8-27 21:59:03编辑过]
9楼
floor2 发表于:2009/8/27 23:01:00
For n As integer = 0 To 7
    Series = Chart.SeriesList.Add()
    Series.Length = 10
    
    For i As integer = 0 to lst.Count - 1
        Series.X(n) = n
        Series.Y(n) = tbl.Compute("Sum(重量)","[颜色] like  '*" &lst(n)& "*'")
     
      
   Next
next
Chart.SeriesList(0).FillColor= Color.Red
Chart.SeriesList(1).FillColor= Color.yellow
....
狐爸 帮我看下该怎么设置好,参数改了很多次,没有眉目啊,帮助里还找不到
 
10楼
狐狸爸爸 发表于:2009/8/27 23:05:00
别做了,我测试过,不好看.
共22 条记录, 每页显示 10 条, 页签: [1] [2][3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.