Foxtable(狐表)用户栏目专家坐堂 → 绘图问题请教


  共有2040人关注过本帖平板打印复制链接

主题:绘图问题请教

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


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
绘图问题请教  发帖心情 Post By:2016/8/22 11:54:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:产量.png
图片点击可在新窗口打开查看
红袍老师,上图是我要做的一张图,代码如下:

'绘图代码
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("生产井产量表") '定义一个变量t引用数据表
Chart= Forms("生产井产量窗口").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Chart.ChartType = ChartTypeEnum.XYPlot '图表类型该为Bar(条形)
Series.Length = t.Rows.Count '设置图系的长度
Series.Text = "产气量"
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = t.Rows(i)("DailyGas") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, t.Rows(i)("date")) '指定字符表示
    Series.TooltipText = "X = {#XVAL},Y = {#YVAL}"
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Series = Chart.SeriesList2.Add() '增加一个图系
Chart.ChartType = ChartTypeEnum.XYPlot '图表类型该为Bar(条形)
Series.Length = t.Rows.Count '设置图系的长度
Series.Text = "产水量"
For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
    Series.X(i) = i '指定水平坐标
    Series.Y(i) = t.Rows(i)("DailyWater") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i, t.Rows(i)("date")) '指定字符表示
    Series.TooltipText = "Y = {#YVAL}"
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
'图片美化
Chart.AxisY.Text = "产气量"
Chart.AxisY2.Text = "产水量"
Chart.AxisX.AnnoRotation = - 90 'X轴标示逆时针旋转90度
Chart.AxisX.ClearValueLabel
Chart.AxisX.GridMajorVisible = False '隐藏X轴的网格线
Chart.AxisY.GridMajorVisible = False '隐藏Y轴的网格线
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)

 

有几个问题请教:

1.这种柱状图最多可以支持多少行数据?我的数据点太多了,有的井产量有几年,上千条数据。

2.我的横坐标是用的日期(date),但是不能都显示出来,不然太多了,能够让X轴每隔20条数据显示一个标签吗?

3.如果要把鼠标放在数据点上,显示当前点的时间和产量,也就是X、Y值,Y值是数值,可以用YVAL显示,时间如何显示呢?

4.如果在原来的表中,时间这一列(“date”)比较乱,不是按时间先后排列的,绘图的时候能否让它以时间先后顺序绘图?时间早的点在时间晚的点的左侧。如何实现?


 回到顶部