搬家第五天-123.Wincc V7.3 MSChart控件使用初步2-两条曲线的实现

前面一篇博客记录了显示一条曲线的方法,现实中我们经常需要对比表格中几条曲线,本文介绍两个变量做曲线的方法。

     画面上画质一个listview控件作为曲线的数据源,名字修改为LV,放置一个MSChart控件显示图表,名字修改为Chart,放置一个按钮生成曲线,按钮的鼠标点击事件中添加以下vbs代码:

Sub OnClick(ByVal Item)                            
Dim LV,Chart,flow1(),flow2(),mytime(),RowCount,i
Set LV=ScreenItems("LV")
Set Chart=ScreenItems("Chart")
RowCount=LV.listitems.count
Redim flow1(RowCount),flow2(RowCount),MyTime(RowCount)
For i=1 To RowCount
 flow1(i)=CInt(LV.listItems.item(i).listsubitems.item(4).text)
 flow2(i)=CInt(LV.listItems.item(i).listsubitems.item(5).text)
 MyTime(i)=CStr(LV.listItems.item(i).listsubitems.item(3).text)
Next
'初始化chart控件
'.Axis坐标轴有两个参数,第一个axisId指坐标轴编号;第二个参数为保留参数,此处为1,可以不写
'坐标轴编号0,1,2,3,4
'0为x轴,1为y轴,2位第二y轴,3为z轴,4表示无坐标轴
With Chart
 .TitleText = "流量"
 .ColumnCount=2 '两条曲线 

'   '设置图线的外观
'   '设置XY轴
   .Plot.Axis(0).ValueScale.Auto = 0   
   .Plot.Axis(1).ValueScale.Auto = 0
'//  '设置最大值
   .Plot.Axis(0).ValueScale.Maximum = RowCount '设置横轴标注最大值
   .Plot.Axis(1).ValueScale.Maximum = 300 '设置纵轴标注最大值
'//  '设置最小值
   .Plot.Axis(0).ValueScale.Minimum = 0
   .Plot.Axis(1).ValueScale.Minimum = 0 
 .RowCount =RowCount 
   .Plot.Axis(0).AxisGrid.MajorPen.Style = 1
   .Plot.Axis(1).AxisGrid.MajorPen.Style = 1
   .Plot.AutoLayout = 1
   .Plot.UniformAxis = 0
    '图表类型
    .chartType = 3
   '横坐标轴标注
    For i = 1 To RowCount
 .Row = i
 .RowLabel = "" '先清空标签 
 Next
    .Row=1
   .RowLabel=CStr(MyTime(1))   
    For i=1 To 5
 .Row = i*4
 .RowLabel = CStr(MyTime(i*4))
   Next 
 
 '设置曲线1
    .ShowLegend = 1  '显示图例
   .Column=1
    .ColumnLabel = "流量1"
 .RandomFill=False
    For i=1 To RowCount
      .row = i
   .data=flow1(i)
 Next
 '设置曲线2
 .Column=2
 .ColumnLabel = "流量2"
 .RandomFill=False
 For i=1 To RowCount
      .row = i
   .data=flow2(i)
 Next
End With
End Sub

保存运行后,是这样的效果:

 

posted @ 2021-02-02 20:06  来自金沙江的小鱼  阅读(1533)  评论(0)    收藏  举报