注册 登录
编程论坛 VB.NET论坛

Chart 的几个问题

xiangyue0510 发布于 2016-03-16 10:24, 4167 次点击
只有本站会员才能查看附件,请 登录

如图,我使用Chart绘制了一个时间历程曲线
但是有几个地方需要完善的:
1. Y轴的数字如何设置, 数据库中查询得到数字是小数点后三位,不是现在这样的。
2. X轴想把查询得到的时间点放在上面,现在只是默认的间隔。 Y轴也想
3. 折线上如何加上点,或者×之类的也可以,就是要表示这个是实际查到的点
7 回复
#2
xiangyue05102016-03-18 08:36
没有人知道么,现在就是第二条没有解决了
1. 解决方法是 ChartInspection.ChartAreas(0).AxisY.LabelStyle.Format = "#.##"
3. 解决方法是  ChartInspection.Series(i).MarkerStyle =3
#3
不说也罢2016-03-18 10:24
定义两个数组X(a),Y(a),将查询到的值赋值给X轴,Y轴即可。
保持X,Y的维数一致
晚上有时间的话给你写个栗子。
#4
xiangyue05102016-03-18 13:54
好的谢了先,等你的栗子
#5
不说也罢2016-03-18 14:42
这是运行结果
只有本站会员才能查看附件,请 登录

这是代码:
只有本站会员才能查看附件,请 登录

总之,MSCHART不是太好用。不知我是否理解了楼主的意思。
#6
xiangyue05102016-03-19 19:12
回复 5楼 不说也罢
似乎不行。
我的例子X轴是时间,就是无法出现每个数据点的准确时间。
程序代码:

Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim x(6) As Date
        Dim y(6) As Double
        Dim i As Integer
        x(0) = "2010.5.6"
        y(0) = 0
        For i = 1 To 6
            x(i) = x(i - 1).AddDays(365 * 2 * Rnd())
            y(i) = Math.Round(i * Rnd(100) * 1.0264, 2)
        Next

        Chart1.Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Line
        Chart1.Series(0).Points.DataBindXY(x, y)

        Chart1.Series(0).IsValueShownAsLabel = True
        Chart1.Series(0).LabelForeColor = Color.Red
        Chart1.ChartAreas(0).AxisX.IntervalType = DateTimeIntervalType.Years   '主轴间隔
        Chart1.ChartAreas(0).AxisX.Interval = 1
        'Chart1.ChartAreas(0).AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.WordWrap
    End Sub
End Class

#7
不说也罢2016-03-21 14:29
这个结果可参照股票软件的K线图。在光标移动事件中进行绘制。或者在绘制的点上使用ToolTip类。有时间再弄一个吧。
#8
xiangyue05102016-03-22 20:07
回复 7楼 不说也罢
好吧,反正这个也只是锦上添花的,没有也可以。
1