以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图表柱子颜色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=195761)

--  作者:漂亮美眉vszh
--  发布时间:2025/3/7 10:50:00
--  图表柱子颜色

老师,想每条柱子的颜色不一样,
改成多图系后,能更改颜色,但柱子宽度又太窄
图片点击可在新窗口打开查看此主题相关图片如下:123456.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:23456.png
图片点击可在新窗口打开查看
    Dim Chart As WinForm.Chart \'定义一个图表变量
    Dim Series As WinForm.ChartSeries \'定义一个图系变量
    \'Dim drs As List(Of DataRow)
    \'drs = DataTables(e.Form.name & "_Table1").Select("[辅助列] < 10","辅助列 DESC")
    
    Chart= e.Form.Controls("Chart1")
    Chart.SeriesList.Clear() \'清除图表原来的图系
    \' If drs.count > 0 Then
    \' Chart.VisualEffect = True
    Dim rb2 As WinForm.RadioButton = e.Form.Controls("RadioButton2")
    If rb2.Checked = True Then
        Chart.ChartType = ChartTypeEnum.Bar
        \'Series = Chart.SeriesList.Add()
        \'Series.Length = 5
        Dim sp4 As WinForm.SplitContainer = e.Form.Controls("SplitContainer4")
        sp4.Panel1.Collapsed = True
    Else
        Chart.ChartType = ChartTypeEnum.Pie
    End If
    
    Dim zts() As String = {"已完成(延期)","已完成(如期)","进行中(延期)","进行中(将延)","进行中(如期)"}
    
    
    
    For ri As Integer = 0 To 4  \' In drs
        If rb2.Checked = True Then

\'For Each c As Col In t.Cols
    \'If c.Name <> "产品" Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Text = zts(ri)  \'设置图系的标题
        Series.Length = 1  \' t.Rows.Count \'设置图系的长度
        \'For r As Integer = 0 To t.Rows.Count - 1
            \'Series.X(r) = r
            \'Series.Y(r) = t.Rows(r)(c.Name)
        \'Next
    \'End If
\'Next

            Series.X(0) = ri  \'指定水平坐标
            Series.Y(0) = DataTables(e.Form.name & "_Table1").Compute("count(事项状态)","事项状态 = \'" & zts(ri) & "\'")
          \'  Chart.AxisX.SetValueLabel(ri,zts(ri)) \'指定字符表示
    
            If zts(ri) = "进行中(延期)" Then
            \'Chart.SeriesList(ri).LineColor = Color.Red
Chart.SeriesList(ri).FillColor = Color.Red
            ElseIf zts(ri) = "已完成(延期)" Then
            \'Chart.SeriesList(ri).LineColor = Color.Orange
            Chart.SeriesList(ri).FillColor = Color.Orange
            ElseIf zts(ri) = "进行中(将延)" Then
            \'Chart.SeriesList(ri).LineColor = Color.Yellow
            Chart.SeriesList(ri).FillColor = Color.Yellow
            ElseIf zts(ri) = "进行中(如期)"
           \' Chart.SeriesList(ri).LineColor = Color.SpringGreen
            Chart.SeriesList(ri).FillColor = Color.SpringGreen
            ElseIf zts(ri) = "已完成(如期)" Then
           \' Chart.SeriesList(ri).LineColor = Color.Green
            Chart.SeriesList(ri).FillColor = Color.Green
            \'ElseIf r("项目状态") = "停止执行项目" Then
            \'Series.FillColor = Color.Gray
            End If
Chart.BarClusterWidth = 200
        Chart.AxisX.AnnoWithLabels = True \'启用字符标示
        Chart.AxisX.AnnoRotation = - 45
Series.DataLabelText = "{#YVAL}"

--  作者:有点蓝
--  发布时间:2025/3/7 11:29:00
--  
Chart.BarClusterWidth = 200
改为
Chart.BarClusterWidth = 20

--  作者:漂亮美眉vszh
--  发布时间:2025/3/7 13:42:00
--  
柱子变的更细了,100-200-20等值我都试了,都不行


--  作者:有点蓝
--  发布时间:2025/3/7 14:20:00
--  
Chart.BarClusterWidth = 80
--  作者:漂亮美眉vszh
--  发布时间:2025/3/7 14:36:00
--  
试过,比100的稍微小一丢丢,基本目视看不出差异
--  作者:漂亮美眉vszh
--  发布时间:2025/3/7 14:36:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:567.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2025/3/7 15:13:00
--  
请上传实例测试
--  作者:漂亮美眉vszh
--  发布时间:2025/3/7 15:55:00
--  
111
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:求助柱子颜色.foxdb



--  作者:有点蓝
--  发布时间:2025/3/7 16:15:00
--  
使用的是图示多列的方式,这种虽然不显示但是其它系列但是一样会占用同样的空间的,中间空出来的是其它图系的宽度

换种方式处理:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=66247