以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  数据标识 能不能用百分比 体现呢  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118929)

--  作者:fubblyc
--  发布时间:2018/5/14 16:14:00
--  数据标识 能不能用百分比 体现呢
数据标识 能不能用百分比 体现呢,对应的表的数据是百分比的形式

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


[此贴子已经被作者于2018/5/14 16:14:54编辑过]

--  作者:有点甜
--  发布时间:2018/5/14 16:40:00
--  
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = 10 \'新增图系包括10个数据点
For i As Integer = 0 To 9 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = i + Rand.Next(5) \'垂直坐标用随机数生成
Next
Dim c1Chart1 = Chart.basecontrol
Dim lbls = c1Chart1.ChartLabels

For i As Integer = 0 To 9
    Dim lbl As C1.Win.C1Chart.Label = lbls.LabelsCollection.AddNewLabel()
    lbl.Text = Format(series.y(i), "0.00%")
   
    lbl.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
    lbl.AttachMethodData.GroupIndex = 0
    lbl.AttachMethodData.SeriesIndex = 0
    lbl.AttachMethodData.PointIndex = i
    lbl.Style.ForeColor = Color.Red
    lbl.style.font = new font("宋体", 15)
    lbl.Compass = LabelCompassEnum.South
    lbl.Visible = True
Next

--  作者:fubblyc
--  发布时间:2018/5/15 10:35:00
--  
甜老师,奇怪,一开始还可以,后面重新就出错了,注释掉那段代码,其他的没问题

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

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Chart = forms("人脸识别图表").Controls("Chart1") \' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot \'图表1类型该为Bar(条形)
Chart.ChartType2 = ChartTypeEnum.Bar \'图表2类型该为线形
Chart.DataSource = "瑞为人脸识别年龄段统计_table1" \'设置绑定表

Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'给图表1增加一个图系
Series.Text = "成交率"
Series.X.DataField = "门店名称" \'X轴绑定到产品列
Series.Y.DataField = "成交率_合计" \'Y轴绑定到数量列

Dim c1Chart1 = Chart.basecontrol
Dim lbls = c1Chart1.ChartLabels
For i As Integer = 0 To 9
    Dim lbl As C1.Win.C1Chart.Label = lbls.LabelsCollection.AddNewLabel()
    lbl.Text = Format(series.y(i), "0%")
    lbl.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
    lbl.AttachMethodData.GroupIndex = 0
    lbl.AttachMethodData.SeriesIndex = 0
    lbl.AttachMethodData.PointIndex = i
    lbl.Style.ForeColor = Color.Red
    lbl.style.font = new font("微软雅黑", 15)
    lbl.Compass = LabelCompassEnum.South
    lbl.Visible = True
Next


Chart.SeriesList2.Clear() \'清除图表原来的图系
Series = Chart.SeriesList2.Add() \'给图表2增加一个图系
Series.Text = "总客流"
Series.X.DataField = "门店名称" \'X轴绑定到产品列
Series.Y.DataField = "总客流_合计" \'Y轴绑定到数量列
\'Series.DataLabelText = "{#YVAL}"

Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端)
Chart.AxisY.Text = "成交率"
Chart.AxisY2.Text = "总客流"
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度

--  作者:有点甜
--  发布时间:2018/5/15 10:46:00
--  

这个循环,请改成你表的行

 

For i As Integer = 0 To 9

 

 

For i As Integer = 0 To Tables("瑞为人脸识别年龄段统计_table1").Rows.Count-1

[此贴子已经被作者于2018/5/15 10:46:00编辑过]

--  作者:有点甜
--  发布时间:2018/5/15 10:47:00
--  

如果还是有问题,请上传具体实例测试。


--  作者:fubblyc
--  发布时间:2018/5/15 11:21:00
--  
可以了,甜老师,原来是这个问题
--  作者:mxl810823
--  发布时间:2019/4/22 19:28:00
--  
\'绘图

Dim Chart  As WinForm.Chart  \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table =  Tables("月FTY") \'定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = False
Chart.AxisX.DateType = True \'明确指定X轴是日期型
Chart.AxisX.AnnoFormatString = "MM-dd" \'指定日期标示格式
Chart.AxisY.Min = 0.98 \'指定Y轴的最小值
Chart.AxisY.Max = 1 \'指定Y轴的最大值
Chart.AxisY.Major = 0.002 \'主刻度间隔值为
Chart.SeriesList.Clear() \'清除图表原来的图系
For r As Integer = 0 To t.Rows.count - 1
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Text = t.rows(r)("项目名称")  \'设置图系的标题
    Series.Length = t.Cols.Count - 1  \'设置图系的长度
    For c As Integer = 1 To t.Cols.count -1
        Series.X(c - 1) = c - 1
        
        Dim str = "" & t.Rows(r)(c) & ""
        str = System.Text.RegularExpressions.Regex.Replace(str, "[^0-9.]", "")
        Dim yv As Double = val(str) / 100
        
        Series.Y(c - 1) = yv
        
        Chart.AxisX.SetValueLabel(c - 1, t.Cols(c).caption) \'指定字符表示
        

    Next
    Dim c1Chart1 = Chart.basecontrol
    Dim lbls = c1Chart1.ChartLabels
    For i As Integer = 1 To t.Cols.count -1
        Dim lbl As C1.Win.C1Chart.Label = lbls.LabelsCollection.AddNewLabel()
        lbl.Text = Format(series.y(i-1), "0.00%")
        
        lbl.AttachMethod = C1.Win.C1Chart.AttachMethodEnum.DataIndex
        lbl.AttachMethodData.GroupIndex = 0
        lbl.AttachMethodData.SeriesIndex = 0
        lbl.AttachMethodData.PointIndex = i-1
        lbl.Style.ForeColor = Color.Red
        lbl.style.font = new font("宋体", 8)
        lbl.Compass = LabelCompassEnum.South
        lbl.Visible = True
    Next

Next
为什么只在第一条线有显示呢??
图片点击可在新窗口打开查看此主题相关图片如下:23.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/4/22 20:19:00
--  
 lbl.AttachMethodData.SeriesIndex = r