Foxtable(狐表)用户栏目专家坐堂 → [求助]折线图不显示横坐标的值


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

主题:[求助]折线图不显示横坐标的值

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


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]折线图不显示横坐标的值  发帖心情 Post By:2024/1/2 8:30:00 [只看该作者]

老师好!下面的代码,开始是显示过x轴坐标(日期)的,后来不显示了,是什么原因?

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看


Dim Chart1 As WinForm.Chart '定义一个图表变量
Dim Series1 As WinForm.ChartSeries '定义一个图系变量
Chart1 = Forms("趋势图").Controls("Chart2") ' 引用窗口中的图表
Chart1.DataSource = "趋势图_table1" '设置绑定表
Chart1.SeriesList.Clear() '清除图表原来的图系
Series1 = Chart1.SeriesList.Add() '增加一个图系
Series1.X.DataField = "日期" 'X轴绑定到产品列
Series1.Y.DataField = "实际收盘价" 'Y轴绑定到数量列
Chart1.DataFilter = "日期 >= '" & dt1 & "' And 日期 <= '" & dt2 & "'"
Chart1.AxisX.DateType = True 'X轴是日期型
Chart1.AxisX.AnnoFormatString = "MM-dd" '只显示日
Chart1.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
Series1.Text = "实际"

'chart1.SeriesList(0).MarkSize = 0 ’不显示值
Chart1.AxisX.AnnoWithLabels = True '启用字符标示
Chart1.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart1.LegendVisible = True '显示图列
Chart1.LegendCompass = CompassEnum.South '图列显示在南方(底端)

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

试试
Dim Chart As WinForm.Chart
Chart.AxisX.ClearValueLabel

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


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/1/2 9:36:00 [只看该作者]

运行代码没变化~
试着把bin文件夹删掉也没有变化~


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (3).jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/2 9:45:00 [只看该作者]

把下面代码去掉

Chart.AxisX.DateType = True 
Chart.AxisX.AnnoFormatString = "MM-dd"
Chart.AxisX.AnnoWithLabels = True
[此贴子已经被作者于2024/1/2 9:46:15编辑过]

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


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/1/2 20:59:00 [只看该作者]

1、是不是引用的数据表来自窗口临时表的原因?因为我在同一个窗口放两个图表,另一个数据表来源自系统增加的主表,就可以显示X轴的日期~
2、但是现在又遇到一个问题,利用说明里的K线图代码,X轴的日期坐标值,为什么自动添加了数据表中没有的周六、周日?

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (5).jpg
图片点击可在新窗口打开查看

Dim Chart1 As WinForm.Chart '定义一个图表变量
Dim Series1 As WinForm.ChartSeries '定义一个图系变量
Dim t1 As Table = Tables("K线图") '定义一个变量t引用数据表
Chart1 = Forms("趋势图").Controls("Chart2") ' 引用窗口中的图表
Chart1.ChartType = ChartTypeEnum.Candle '设置图表类型
Chart1.AxisX.DateType = True '明确指定X轴是日期型
Chart1.AxisX.AnnoFormatString = "MM-dd" '制定日期表示格式
Chart1.AxisY.Text = "价格"
Chart1.SeriesList.Clear() '清除图表原来的图系
Series1 = Chart1.SeriesList.Add() '增加一个图系
Series1.LineColor = Color.Blue '设置该图系的颜色
Chart1.DataSource = "K线图" '绑定设置
Series1.X.DataField = "日期"
Series1.Y.DataField = "最高价" 
Series1.Y1.DataField = "最低价" 
Series1.Y2.DataField = "开盘价" 
Series1.Y3.DataField = "收盘价"

'用第二个图表显示成交额
Chart1.ChartType2 = ChartTypeEnum.Bar
Chart1.SeriesList2.Clear() 
Series1 = Chart1.SeriesList2.Add()
Series1.FillColor = Color.LightBlue '设置条形图的填充颜色
Series1.X.DataField = "日期"
Series1.Y.DataField = "成交量"
Chart1.AxisY2.Text = "成交量"
Chart1.AxisY2.GridMajorVisible = False '隐藏Y2轴的网格线




 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/2 21:09:00 [只看该作者]

和这个没有关系,请上传实例测试

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


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/1/3 16:30:00 [只看该作者]

做了个实例请蓝老师帮忙看看~
窗口中的2个图表有点问题:一个是双折线未显示,二是X坐标的值(周六、周日)不在表中,不应该显示~
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表测试.foxdb



 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/3 16:40:00 [只看该作者]

1、

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

2、绑定的情况下没有办法排除(周六、周日),改为遍历处理吧

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


加好友 发短信
等级:四尾狐 帖子:963 积分:8510 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2024/1/3 19:27:00 [只看该作者]

遍历也不行~

Dim dt1 As Date = Forms("窗口1").Controls("DateTimePicker1").Value
Dim dt2 As Date = Forms("窗口1").Controls("DateTimePicker2").Value

'第一个图表
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.XYPlot '设置图表类型
Chart.AxisX.DateType = True '明确指定X轴是日期型
Chart.AxisX.AnnoFormatString = "MM-dd" '制定日期表示格式
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系

Dim drs As List(Of DataRow)
drs = DataTables("表A").Select("日期 >= '" & dt1 & "' And 日期 <= '" & dt2 & "'")
Series.Length = drs.Count '图系n个数据点
For i As Integer = 0 To drs.Count - 1 '遍历所有行    
    Series.X(i) = drs(i)("日期") '指定水平坐标
    Series.Y(i) = drs(i)("预测") '垂直坐标用随机数生成
Next

Series.LineColor = Color.Blue '设置该图系的颜色
Series.MarkShape = MarkShapeEnum.Dot
Series.MarkColor = Color.Green
Series.Text = "预测"

'第二个图表
Chart.ChartType2 = ChartTypeEnum.XYPlot
Chart.SeriesList2.Clear()
Series = Chart.SeriesList2.Add()
Series.Length = drs.Count '图系n个数据点
For i As Integer = 0 To drs.Count - 1 '遍历所有行    
    Series.X(i) = drs(i)("日期") '指定水平坐标
    Series.Y(i) = drs(i)("实际") '垂直坐标用随机数生成
Next

Series.LineColor = Color.Red
Series.MarkShape = MarkShapeEnum.Dot
Series.MarkColor = Color.Yellow
Chart.AxisY.GridMajorVisible = False '隐藏Y2轴的网格线
Series.Text = "实际"

'Chart.AxisX.AnnoWithLabels = True '启用字符标示(启用后不显示日期)
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendVisible = True '显示图列
Chart.LegendCompass = CompassEnum.South '图列显示在南方(底端)


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (7).jpg
图片点击可在新窗口打开查看


 回到顶部