Foxtable(狐表)用户栏目专家坐堂 → 图表X轴的标识值


  共有66人关注过本帖树形打印复制链接

主题:图表X轴的标识值

美女呀,离线,留言给我吧!
漂亮美眉vszh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:895 积分:8102 威望:0 精华:0 注册:2013/5/30 11:27:00
图表X轴的标识值  发帖心情 Post By:2025/2/19 15:34:00 [只看该作者]

老师,我想标识出3条线的值,第一是值太往上偏,其次是小数位数太多,如何保留4位小数?

图片点击可在新窗口打开查看此主题相关图片如下:123456.png
图片点击可在新窗口打开查看
Dim drs As List(Of DataRow) = DataTables("表A").Select(条件)

    
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    
    Chart = Forms("测量数据录入").Controls("Chart4") ' 引用窗口中的图表
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.SeriesList2.Clear() '清除图表原来的图系
    Series = Chart.SeriesList.Add() '给图表2增加一个图系
    Chart.ChartType = ChartTypeEnum.Hilo '设置图表类型
    Series.LineThickNess = 2 '设置线条宽度
    
    Dim maxi As Double = 62
    Dim mini As Double = 61.989
    Dim yzdz As Double = 24 + 2
    Dim yzdzx As Double = 24 - 2
    Dim s As Row = Tables("主控图").current
    Series.Length = drs.Count '图系包括10个数据点
    For i As Integer = 0 To drs.Count - 1 '指定每个数据点的位置
        Series.X(i) = val(drs(i)("组6"))  +  (val(drs(i)("组6")) / (val(drs(i)("组2")) + val(drs(i)("组1")) ) * s("P平均") )  '指定水平坐标
        Series.Y(i) = yzdz - 1  '指定垂直坐标
        Series.Y1(i) = 0
         ' Chart.AxisX.SetValueLabel(i,drs(i)("组6")) '指定字符表示
'Chart.AxisX.SetValueLabel(i,i + 1) '指定字符表示
    Next
    Chart.SeriesList(0).LineColor = Color.Red
    Chart.AxisX.Min = mini - s("P平均") '指定Y轴的最小值
    Chart.AxisX.Max = maxi + s("P平均") '指定Y轴的最大值
    '  Output.Show(mini & "  " & maxi )
    Series.DataLabelText = "{#XVAL}"
    Chart.Axisy.Max = yzdz '指定Y轴的最大值
    If yzdzx <= 0 Then
        Chart.Axisy.min = 0
    Else
        Chart.Axisy.min = yzdzx
    End If
   Chart.AxisX.Major = s("P平均")*2
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    
    'MessageBox.Show(100)
    ' Return ""
    
    
    Chart.ChartType2 = ChartTypeEnum.Bar '图表类型改为Bar(条形)
    Chart.SeriesList2.Clear() '清除图表原来的图系
    Series = Chart.SeriesList2.Add() '增加一个图系
    Series.Length = drs.Count  ' + 1 '设置图系的长度
    Dim ss As String = ""
    Dim ddr As DataRow
    For r As Integer = 0 To drs.Count - 1
        ss = drs(r)("状态")
        If drs(r)("组5") = -1 AndAlso ss.Contains("~") AndAlso drs(r)("组4") <> 0 Then
            'Output.Show(drs(r)("组1") & "  " & drs(r)("组3"))
            Series.X(r) = drs(r)("组2")
            Series.Y(r) = drs(r)("组3")
            Chart.AxisX.SetValueLabel(r,drs(r)("组1")) '指定字符表示
        End If
    Next
    
    
    Series.DataLabelText = "{#YVAL}"
    Chart.Axisy2.Max = yzdz '指定Y轴的最大值
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    ' MessageBox.Show(Chart.Axisy.min)
    Chart.Axisy2.min = Chart.Axisy.min
    ' Chart.AxisX.AnnoRotation = - 45
    Chart.BarClusterWidth2 = 100
    Chart.SeriesList2(0).LineColor = Color.LightSkyBlue
    Chart.AxisX.AnnoWithLabels = True '启用字符标示


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112347 积分:571985 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/19 16:05:00 [只看该作者]

请上传实例测试

 回到顶部