一個模板套所有——Origin命令流畫圖視頻附件
字幕文件
在origin里使用命令流來畫圖
復(fù)制粘貼然后enter得到9列數(shù)據(jù),每一列25行(junk.dat數(shù)據(jù)很簡單,自己隨便創(chuàng)建一下就行),現(xiàn)在我原本的要求是畫1到8列為x,9列為y的八張圖,但是又不想手動選擇,于是就有想使用命令流來畫的想法,(最主要的還是命令流可以重復(fù)使用,之后可能有好幾張這樣的數(shù)據(jù)表)
讀取文件照葫蘆畫瓢即可,重點是修改數(shù)據(jù)以及畫圖,想修改第一列數(shù)據(jù)變成正數(shù),用絕對值函數(shù),這意外的簡單。
仍然是復(fù)制粘貼運行
先畫一個總圖
很明顯圖例是選擇y軸標(biāo)簽,我要換到x軸,需要用到下面的命令,可以了,后面就是一些改格式以及復(fù)制粘貼格式了。其實命令流也可以使用格式模板,但是我感覺沒必要(主要是我還不會。。。)因為出圖時肯定要修改一些格式,這個時候更改格式很簡便,在origin中。
這并不是我之前想要的效果,我是想要1列與9列一個圖,以此類推2列與9列也要一張圖。于是我想到循環(huán)命令,但是很可惜,暫時不知道循環(huán)for如何解決參數(shù)傳遞進(jìn)%(1X,@LL)(這個是我命名圖的操作,使用的是每一列的長名稱),因此使用傻瓜命令,一行一行修改。修改如下,這里有個坑,就是第2列重復(fù)操作后圖名稱會變,這是因為當(dāng)前實在sph_gd_s圖名稱下,要正確識別,需要激活junk.dat工作簿,激活如左。下面六個圖一次性生成,復(fù)制粘貼如右。很好,八個圖都正確畫好了。如果想知道具體命令流的解釋,請看專欄部分。
命令流文件
//LabTalk 支持 三種 數(shù)值 數(shù)據(jù) 類型: double, int, 和 const。
//讀取文件
string path$ =? "E:\study\諸暨連拱隧道\flac3d\收斂約束法\";
findfiles ext:=junk.dat;
impASC;
//前處理數(shù)據(jù)
junk_A=abs(junk_A)
//畫點線圖,一定要指定工作表,202是點線圖,ogl是指定畫圖名稱,后面s是一個圖層,建議【】里寫好名稱,s在要比較各類圖的時候?qū)懞?,否則用1就行
plotxy? iy:=[junk]junk!(1:8,9)? plot:=202? ogl:=[sph_GRC]s!? ? ?
//label標(biāo)簽,下面顯示的是多種用法
label? ?-s %([junk]junk,1,5)??
"可以使用 \b(加粗)
使用上下標(biāo) X\=(\i(i), 2)?
\i(分子)?
\ab(分母)?
or \c4(加顏色) ";
//修改xy對應(yīng)的圖例標(biāo)簽,第一個是使用y做圖例(修改示例),第二行是使用x做圖例
//? \l(1) %(1)\(O Shape:Square, Interior:Solid, Style:S, Fill:18, EdgeColor:1, EdgeWidth:15.0)
// ? \l(1) %(1X,@LL)\(O Shape:Square, Interior:Solid, Style:S, Fill:18, EdgeColor:1, EdgeWidth:15.0)
//%(1X,@LL)是工作表名稱,%(1X,@LL)是x參數(shù)名稱
//? ? label -sl -n legend "\l(1) %(1, @WS) %(1X,@LL)"
//下面給一個完整示例
label -sl -n legend "\l(1) %(1X,@LL)?
\l(2) %(2X,@LL)?
\l(3) %(3X,@LL)
\l(4) %(4X,@LL)
\l(5) %(5X,@LL)
\l(6) %(6X,@LL)
\l(7) %(7X,@LL)
\l(8) %(8X,@LL) ";
//使用循環(huán),暫時有問題,不改了
loop (ii, 1, 8)? {
label -sl -n legend "\l($(ii)) %($(ii)X,@LL) ";
};
//回到最開始想1到8列作為x,9列作為一個圖的命令流,這里全部放在sph_GRC圖層里,暫時不知道循環(huán)for如何解決參數(shù)傳遞進(jìn)%(1X,@LL),因此使用傻瓜命令,一行一行修改
for (ii=1 ; ii<=8 ;? ii++ )
{
plotxy? iy:=[junk]junk!(1,9)? plot:=202? ogl:=["%(1X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
}
win -a junk;
plotxy? iy:=[junk]junk!(1,9)? plot:=202? ogl:=["%(1X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(2,9)? plot:=202? ogl:=["%(2X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;? ?//當(dāng)前工作簿的第一個x標(biāo)簽當(dāng)作圖例,否則使用默認(rèn)的y標(biāo)簽當(dāng)作圖例
win -a junk;
plotxy? iy:=[junk]junk!(3,9)? plot:=202? ogl:=["%(3X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(4,9)? plot:=202? ogl:=["%(4X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(5,9)? plot:=202? ogl:=["%(5X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(6,9)? plot:=202? ogl:=["%(6X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(7,9)? plot:=202? ogl:=["%(7X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
win -a junk;
plotxy? iy:=[junk]junk!(8,9)? plot:=202? ogl:=["%(8X,@LL)"]? ;
label -sl -n legend? ?\l(1) %(1X,@LL) ;
昨天晚上到今天下午,迷糊了一晚上。
終究還是浪費時間,因為簡單的用不上,復(fù)雜的用不了,這夠魔幻,權(quán)當(dāng)是無聊下的玩具。