使用Fortran程序在Labtalk中更改图表颜色

时间:2016-03-22 09:27:43

标签: graph colors fortran originlab

我有一个Fortran程序,它创建一个bat文件,该文件包含Labtalk中Origin的命令。最后,Origin将显示带有几个图的图表。目前,所有绘制的线都以黑色显示。现在我想改变图形的颜色。任何人都可以告诉我哪里哪个命令我必须更改?我认为这必须发生在这里:

     ...
     ch1=ADJUSTL(ch1)
     WRITE(ch2,'(I3)')JJY(i)
     ch2=ADJUSTL(ch2)

     WRITE(4,489)CHAR(77+i),'aX'//ch1(1:LNBLNK(ch1))//'Y'
     1//ch2(1:LNBLNK(ch2))
     enddo
 489    FORMAT(1H ,'%',A1,'=',A8,';')
     ENDIF
     FLINE='count='//NCHAR(1:LNBLNK(NCHAR))//';'
     WRITE(4,'(1A260)')FLINE
     WRITE(4,490)
 490    FORMAT(1H ,'window -n Data;',
     1/1H ,'open -w %A;',
     1/1H ,'window -r %H Data ;',
     1/1H ,'worksheet -t 1 4; worksheet -t 2 1;',
     1/1H ,'worksheet -n 1 %M;')
     do i=1,NUMB
     WRITE(4,491)i+1,CHAR(77+i)
     enddo
 491    FORMAT(1H ,'worksheet -n ',I1,' %',A1,';')
     WRITE(4,492)
 492    FORMAT(1H ,'window -i ;',
     1/1H ,'window -n plot Plot ;')
     do i=1,NUMB
     WRITE(4,493)CHAR(77+i),i+1
     enddo
 493   FORMAT(' %S=Data_%',A1,';',
     1/1H ,'set %S -x Data_%M; set %S -c ',I1,';',
     1/1H ,'layer -i %S',
     1/1H ,'set %S -w 1000;'     )      

     WRITE(4,494)
 494   FORMAT(1H ,'axis -ps x g 3;axis -ps x a 3;axis -ps x l 1;',
     1/1H ,'axis -ps y g 3;axis -ps y a 3;axis -ps y l 1;',
     1/1H ,'layer.x.grid.majorwidth=0.3;layer.x.grid.minorwidth=0.1;',
     1/1H ,'layer.x.grid.majorcolor=color(black);layer.x.grid.minor      
     1color=color(black);', 
     1/1H ,'page -o l;',
     1/1H ,'rescale;')
     CLOSE(UNIT=4)
     ...

1 个答案:

答案 0 :(得分:1)

来自Labtalk documentation of set

  

语法:set name -c value

     

在调色板[...]

后面设置绘图线颜色和符号边缘颜色
set %c -c 2; // set color to be red
set %c -c 102; // set the next column on the right to be color index
set %c -c 524390; // set the next column on the left to be color index

这实际上是在您的代码中完成的:

 do i=1,NUMB
 WRITE(4,493)CHAR(77+i),i+1
 enddo
 493   FORMAT(' %S=Data_%',A1,';',
     1/1H ,'set %S -x Data_%M; set %S -c ',I1,';',
     1/1H ,'layer -i %S',
     1/1H ,'set %S -w 1000;'     ) 

并非您选择I1来表示颜色值。也许你的号码在某个时候是> 9?你能检查一下结果文件吗?

[请注意,我的答案仅来自文档。我对Labtalk一无所知。 ]