帮助

内容读取中…

内容读取中…

首页  |  相册  |  共享  |  群组
搜索

正文

Grapher绘图脚本 (2007-05-21 21:10)

An example to draw several picture on one page.

' Copyright by bosomfriend2001@163.com
' If you copy or distribute this script without any change except the copyright
'information, please let me know. If you are interested and find a lot of fun or
' bugs in it, please contact with me. It's my pleasure to make  friends with
' everyone.
Sub Main
' Open the application and get it visible
Dim GrapherApp As Object
On Error Resume Next 'Turn off error reporting.
Set SurferApp = GetObject(,"Grapher.Application")
If Err.Number<>0 Then
   Set GrapherApp = CreateObject("Grapher.Application")
End If
On Error GoTo 0 'Turn on error reporting.
GrapherApp.Visible = True

' set up the canvas
Dim Docs As Object
Set Docs = GrapherApp.Documents
Dim Plot As Object
Set Plot = Docs.Add(grfPlotDoc)
Plot.PageSetup.pageSize=grfA4 'grfA4Small for small A4
Plot.NewWindow.PageUnits = grfCentimeters
Dim Shapes As Object
Set Shapes = Plot.Shapes

' Control of the x-limit and y-limit of the axes, change it if needed,
' here all are the same for the figures in one page
xxMax=0.8
xxMin=0
yyMax=60
yyMin=0
' %%%%%%%   DO NOT USE RELATIVE PATH HERE   %%%%%%
DataPath="D:Program FilesGolden SoftwareGrapher5Scripter"

FigXlen=8   ' cm
FigYlen=4.5 ' cm

' Open files and draw lines
For Nfig=1 To 10 Step 1

'#############################################
'   Change it if needed, Assumption:
'         Data file is "data01.txt, data02.txt ... data10.txt"
'         Add text here is "101, 102, .... 110"
'#############################################

fn = Str$(Nfig+100)
Filename = DataPath + "data" + Right(fn,2) +".txt"
AddText=fn

Set Graph1 = Shapes.AddLinePlotGraph(FileName,2,1)
Nhalf=Int((Nfig+1)/2)
With Graph1
   .top=29.7-1-(Nhalf-1)*FigYlen*1.15
   .height=FigYlen
   .Left=FigXlen*( (Nfig+1) Mod 2 )* 1.2
   .width=FigYlen
End With

Set LinePlot1 =Graph1.Plots.Item(1)
Set LinePlot1.line.foreColor=grfColorRed
Set Axesplot1 =Graph1.Axes
Set xAX1=Axesplot1(1)
Set yAx1=Axesplot1(2)

'Set the limit of x-axis
Set xAx1.AutoMax = False
Set xAx1.AutoMin = False
Set xAx1.Max=xxMax
Set xAX1.Min=xxMin

' set the mod of y-axis
Set yAX1.Descending=True

Set Graph2 = Shapes.AddLinePlotGraph(FileName,3,1)
With Graph2
   .top = 29.7-1-(Nhalf-1)*FigYlen*1.15
   .height=FigYlen
   .Left =1+ FigXlen*( (Nfig+1) Mod 2 )* 1.2
   .width=FigYlen
End With

Set LinePlot2 =Graph2.Plots.Item(1)
Set LinePlot2.line.foreColor=grfColorBlue
Set Axesplot2 =Graph2.Axes

Set xAX2=Axesplot2(1)
Set yAX2=Axesplot2(2)
Set xAX2.AutoMax = False
Set xAx2.Max=xxMax
Set xAX2.Min=xxMin
Set Axesplot2(2).Descending=True
Set xAx1.length=Figxlen 'xxleng
Set xAx2.length=Figxlen 'xxleng
Set yAx1.length=Figylen 'yyleng
Set yAx2.length=FigYlen

yypos=yAx2.yPos
yxpos=yAx2.xPos
yyleng=yAx2.length
xxpos=xAx2.xPos
xypos=xAx2.yPos
xxleng=xAx2.length
Set xAx1.length=xxleng
Set xAx2.length=xxleng
Set yAx1.length=yyleng
Set yAx1.yPos=yypos
Set yAx1.xPos=yxpos
Set xAx1.xPos=xxpos
Set xAx1.yPos=xypos

' Add x-label and y-label
If Nfig<=8 Then
 Set xAX1.TickLabels.MajorOn = False
 Set xAX2.TickLabels.MajorOn=False
Else
  Set xAX1.title.text="Attenuation Coefficient ( /m )"
End If

If Nfig Mod 2 <>0 Then
 Set yAx1.title.text="Depth ( m )"
Else
 Set yAx1.TickLabels.MajorOn = False
 Set yAx2.TickLabels.MajorOn = False
End If

Set yAxAdd=Graph1.AddAxis(grfYAxis)
Set yAxAdd.xPos= yxpos + xxleng
Set yAxAdd.yPos= yypos
Set yAxAdd.length=yyleng
Set yAxAdd.Descending=True
Set yAxAdd.AutoMax=False
Set yAxAdd.Max=yyMax
Set yAxAdd.TickLabels.MajorOn = False

Set xAxAdd=Graph1.AddAxis(grfXAxis)
Set xAxAdd.xPos=xxpos
Set xAxAdd.yPos= yypos + yyleng
Set xAxAdd.length=xxleng
Set xAxAdd.Descending=True
Set xAxAdd.AutoMax=False
Set xAxAdd.Max=xxMax
Set xAxAdd.Min=xxMin
Set xAxAdd.TickLabels.MajorOn = False

'add text
Set text_data  = Shapes.AddText(yxpos+xxleng*0.8,xypos+yyleng*0.2,AddText)
Next Nfig
''quit the application
'GrapherApp.Quit()
End Sub

评论 (2) | 阅读 (223)

评论
    内容读取中…
发表评论

你还没有登录,现在登录

个人档案

内容读取中…

博客公告

内容读取中…

博客日历

内容读取中…

文章分类

内容读取中…

文章存档

    内容读取中…

最新发表

    内容读取中…

最新评论

内容读取中…

博主留言

内容读取中…

博主好友

内容读取中…

最新访客

内容读取中…

博客统计

    内容读取中…

友情链接

新闻订阅