以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于图表问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122197) |
||||
-- 作者:ZJZK2018 -- 发布时间: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 \'采用平滑线条 |
||||
-- 作者:有点甜 -- 发布时间:2018/7/20 16:45:00 -- 代码改成
Series = Chart.SeriesList.Add() \'增加一个图系 Series.X(i) = i \'指定水平坐标 [此贴子已经被作者于2018/7/20 16:45:07编辑过]
|
||||
-- 作者:ZJZK2018 -- 发布时间:2018/7/20 17:03:00 -- 老师: 我需要的是:X轴的数据为所有数据的1到最大值的连续整数,如下图:6、7、8、9、10、11、12 |
||||
-- 作者:有点甜 -- 发布时间:2018/7/20 17:28:00 -- Series = Chart.SeriesList.Add() \'增加一个图系
Series.Text = "入围编号趋势图" \'图例名称命名
Series.Length = t.Rows.Count+1 \'设置图系的长度
Dim cnt As Integer = t.DataTable.Compute("Max(市外_入围编号)")
For ii As Integer = 1 To cnt \' t.Rows.Count - 1 \'指定每个数据点的位置
Series.X(ii) = ii \'指定水平坐标
Series.Y(ii) = 0
Next
For i As Integer = 0 To t.Rows.Count - 1 \'指定每个数据点的位置
Series.Y(t.Rows(i)("市外_入围编号")) = t.Rows(i)("市外_次数") \'指定垂直坐标
Next |
||||
-- 作者:ZJZK2018 -- 发布时间: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 [此贴子已经被作者于2018/7/21 23:27:17编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/7/22 17:48:00 -- 请上传具体实例测试。 |
||||
-- 作者:ZJZK2018 -- 发布时间:2018/7/22 23:19:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2018/7/23 0:31:00 -- \'\'\'========市内入围编号趋势图====== Dim bChart1 As C1.Win.C1Chart.C1Chart = Chart1.basecontrol \'图标坐标轴如何设置字体颜色 \'Chart1.AxisX.AnnoWithLabels = True \'启用字符标示 Dim lbls = bChart1.ChartLabels |