mschart 散点图 VtChChartType2dXY 实例

http://topic.csdn.net/u/20080904/13/dd34c811-3f4c-4456-8521-e7f6d9c3d8d0.html

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'过 程 名:  subCurveInit
'作    用:  初始化MSChart,使其满足作图要求
'说    明:  作图时如下:
'         当设置图形为二维散点图,画一条曲线时需定义一个二维数组MyData(0 to n,0 to 1),赋值方法如下
'         ******* X轴********y轴*******
'         MyData(0,0)=1:MyData(0,1)=1
'         MyData(1,0)=1:MyData(1,1)=1
'         .........
'         MyData(n,0)=1:MyData(n,1)=1
'         当为两条曲线时定义MyData(0 to n,0 to 3),赋值如下
'         第一条:**X轴***y轴******第二条:*****X轴******y轴*******
'         MyData(0,0)=1:MyData(0,1)=1:MyData(0,2)=1:MyData(0,3)=1
'         MyData(1,0)=1:MyData(1,1)=1:MyData(1,2)=1:MyData(1,3)=1
'         .........
'         MyData(n,0)=1:MyData(n,1)=1:MyData(n,2)=1:MyData(n,3)=1
'         当为多条曲线的时候依此类推定义Mydata数组
'         设置曲线相关属性可对.Plot.SeriesCollection(x)的子属性进行操作完成.(x为第几条曲线)
'         最后令.ChartData = MyData即可
'修改历史:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub subCurveInit(Optional intAxisXMax As Integer, Optional intAxisXMin As Integer)
    '//判断是否需要修改X轴显示范围,用于动态显示
    With frmMain.chaCurve
        If intAxisXMax <> 0 Then '//是否需要修改最X轴最大值
            .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = intAxisXMax    '//X轴最大值
            If intAxisXMax <> 0 Then '//是否修改X轴最小值
                .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = intAxisXMin    '//X轴最小值
            End If
        Else '//如果无需修改X轴最大或最小值,进行以下初始化工作
         .TitleText = "温度/时间" '//标题
         .Title.VtFont.VtColor.Set 255, 255, 0 '//标题颜色
         '//对两条曲线的颜色和粗细设置
        .ColumnCount = 4 '//当设置图形为二维散点图时.一条曲线需两个Column,例如两条曲线时,只需对Column=1和3操作,就可完成各自属性设置
        .Plot.SeriesCollection(1).Pen.VtColor.Set 0, 0, 255 '//第一条为理想曲线,设置为蓝色
        .Plot.SeriesCollection(1).Pen.Width = 10 '//设置为较细
        .Plot.SeriesCollection(3).Pen.VtColor.Set 255, 0, 0 '//第二条为实际曲线,设置为红色
        .Plot.SeriesCollection(3).Pen.Width = 10    '//设置为较细
        '//设置X,Y轴不自动缩放,固定大小
        .Plot.Axis(VtChAxisIdX).ValueScale.Auto = False
        .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
        '// 设置X轴的最大值和最小值
        .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 250    '//X轴最大值
        .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0      '//X轴最小值
        '// 设置Y轴最大值和最小值
        .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 100    '//Y轴最大值
        .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = -50    '//Y轴最小值
        '//设置网格
        .Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 25 '//X轴主要网格数量
        .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 15 '//Y轴主要网格数量
        .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 5 '//X轴次要网格数量
        .Plot.Axis(VtChAxisIdX).AxisGrid.MinorPen.Style = VtPenStyleNull '//X轴次要网格不显示
        .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 '//Y轴次要网格数量
        .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleSolid '//X轴网格为实线
        .Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleSolid '//Y轴网格为实线
        '//设置坐标系在MSChart控件框中的大小
        .Plot.AutoLayout = False '//改为手动设置大小
        .Plot.LocationRect.Min.X = 0
        .Plot.LocationRect.Min.Y = 0 '//设置最小坐标位置为0,即坐标系顶部和左边都靠着MSChart的边框
        .Plot.LocationRect.Max.X = .Width
        .Plot.LocationRect.Max.Y = .Height '//设置最大值为MSChart边框的长和宽,使坐标系右边和底部靠着边框
        .Plot.UniformAxis = False '//指定图表的所有值坐标轴的单位刻度不一致(X,Y轴坐标不需要一致).
        '//设置图形类型
        .ChartType = VtChChartType2dXY '//设置图形为二维散点图
        .ChartData = MyData '//可有可无,目的是防止初始显示时曲线框内显示杂乱曲线
         End If
    End With
End Sub

之前三此发的库http://download.csdn.net/detail/maiker/9621027可以作废,本次为最新的,其中测试了历史曲线的动态显示,这是对Microsoft WpfToolkit的更新和扩展: 1、将库版本升级到.NET 4.6.1,对命名控件进行了替换处理 2、实现了单数据Chart图的混合颜色显示,可通过修改资源字典调整和添加颜色 3、可控制各种Chart图形的数据值显示 4、坐标轴文本可倾斜显示 5、添加了StepLine图和圆环图,圆环半径比例系数可设定,同时添加了饼图的半径比系数,这样可以更好的控制饼图的标签显示,避免重叠 6、Legend可位于区域四侧,对齐方式也可以设定,以及是否显示, 可控制Chart Title是否显示 7、柱状图缝隙间隔可调整 8、全方面的加入了各种加载动画效果,动画效果可屏蔽,同时原系统自带动画效果,可叠加,这是两种不同的效果,可以互补性的单个使用 9、设计了四种主题颜色,各人可以针对图形颜色和背景色进行更好的搭配,在用户项目中,可以自己添加新的主题。 10、扩展了时间轴的应用,在新的DateTimeChart中可以通过鼠标平移和缩放时间轴,并测试了两个例子用于动态显示历史曲线,一个是外部定时更新,一个是内部定时更新 11、对LineDataPoint样式进行了设计,现在可以选择线图的点样式(如空心圆、五角星、三角形,矩形等),同时这些不同的点样式可以体现在Legend上,从而实现颜色和图形的双重区分。 总而言之,微软的控件库做得很标准,还是很好修改的。 最后一直想在历史曲线中取消点动画(及默认的透明度动画),以便提高执行效率,但微软的那部分动画不熟,总是修改失败。 可以发邮件wuyang26@live.cn讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值