以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  图表X轴的标识值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195073)

--  作者:漂亮美眉vszh
--  发布时间:2025/2/19 15:34:00
--  图表X轴的标识值
老师,我想标识出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 \'启用字符标示


--  作者:有点蓝
--  发布时间:2025/2/19 16:05:00
--  
请上传实例测试