Foxtable(狐表)用户栏目专家坐堂 → 关于图表问题


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

主题:关于图表问题

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
关于图表问题  发帖心情 Post By:2018/7/20 15:31:00 [显示全部帖子]

老师:
需求:1、X轴的数据为所有数据的1到最大值的整数。2、Y轴为对应值的次数,如没有对应值则为0
下面代码出错:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("抽签入围台帐_Table2") '定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
'Chart.ChartType = ChartTypeEnum.Histogram ' 设置图表类型
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel '清除所有通过SetValueLabel设置的数值字符标示

Series = Chart.SeriesList.Add() '增加一个图系
Series.Text = "入围编号趋势图" '图例名称命名
Series.Length = t.Rows.Count '设置图系的长度

Dim cnt As Integer = t.DataTable.Compute("Max(市外_入围编号)")
For ii As Integer = 1 To cnt  '  t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(ii) = ii '指定水平坐标
    For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
        Series.Y(i) = t.Rows(i)("市外_次数") '指定垂直坐标
        Chart.AxisX.SetValueLabel(i, Format(t.Rows(i)("市外_入围编号"))) '指定字符表示
    Next
Next

Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass = CompassEnum.South '图列显示在南方(底端)
Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Dim fnt As New Font("黑体",9) '设置字体
Chart.AxisX.Font = fnt
Series.DataLabelText = "{#YVAL}" & "次" '数据标示
Chart.SeriesList(0).FitType = FitTypeEnum.Spline '采用平滑线条


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


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/20 17:03:00 [显示全部帖子]

老师:
我需要的是:X轴的数据为所有数据的1到最大值的连续整数,如下图:6、7、8、9、10、11、12


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


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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/21 23:22:00 [显示全部帖子]

老师我的需求如图:
1、X轴的数据为所有数据的1到最大值的连续整数,但AAA图表中没有的数据就不要显示。
2、Y轴的值为0时,X轴不显示0次。

Dim cnt As Integer = t.DataTable.Compute("Max(市外入围_编号)")
Series.Length = cnt '设置图系的长度
t.Sort = "市外入围_编号"
For ii As Integer = 1 To cnt  '  t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(ii) = ii '指定水平坐标
    Series.Y(ii) = 0
'For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Chart.AxisX.SetValueLabel(ii, Format(t.Rows(ii)("市外入围_编号"))) '指定字符表示
'Next
Next
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置   
    Series.Y(t.Rows(i)("市外入围_编号")) = t.Rows(i)("市外入围_次数") '指定垂直坐标
Next


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


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




[此贴子已经被作者于2018/7/21 23:27:17编辑过]

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/22 23:19:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表20180722.table


 回到顶部