isizaka様、tada様、tanaka様ありがとうございました。
表示されなかった問題は、GSをインストールしていなかったからです。いろいろ調べてはいたのですがなにぶん初心者なもんで、、お許し下さい。
しかし、n-graphで[出力]-[外部ドライバ]-[OK]‐[**.epsで名前を付けて保存]とすると、グラフの枠、LEGEND、x-y軸等は表示されるのですが、プロット点と線が表示されません。(GSで表示させたとき)
生データはEXCELにより作成したcsvファイルを読み込ませて、ちゃんとすべてを選択して保存しています。念のためn-graphはもう一度DLし、ned、nad、ngraphは同じフォルダに全て解凍してあります。
たびたびで申し訳ないのですが、よろしくお願いします。
Ngraphにはいつもお世話になっております。
> EPSファイルは作成されるのですが、
> TeXでコンパイルしても画像が表示されません。
「Windows上で、TeXへEPSファイルを貼るのは
初めての初心者の方である」と想定して、
回答を書いてみました。
処理の段階を考えると、
(1) EPSを作成する段階
( 今回は、Ngraph と gra2ps )
(2) TeX処理系でdviファイルを作成する段階
( 例えば、角籐版TeX )
(3) EPSからビットマップファイルを作成する段階
( 例えば、角籐版Ghostscript )
(4) dvi + EPS を表示する段階
( 例えば、dviout )
になろうかと思います。
( ちなみに、dvioutの場合、
(3)はバックグラウンドで使われています。 )
(2),(3),(4)に関しては、
詳細なインストール解説が、配布元をはじめあちこちにあります。
最近私もこれらをインストールしたのですが、
「標準インストール」に従っている限り
落ち着いてやれば難しくなかったです。
(2)はすでに出来ているそうなので、
(1)も正常に動いている可能性が高いです。
まずは、
(3)の動作と
(4)のGhostscriptに関する設定の辺り
を確認してみて、
(1)を疑うのはそれからでも遅くない、と思います。
それから、質問の仕方として、
例えば
使っているOSとソフトとバージョン
自分のしたインストール状況や設定
自分が出来ていること
自分が調べて試したこと
自分が出来ずに困っている現象やエラーメッセージ
など、
*** 問題点が絞れるような具体的な情報 *** を
詳しく書くのがマナーだと思いますし、
解決への近道にもなるはずです。
( 具体的情報が不足しているので
私の回答も大外れかもしれない )
>EPSファイルは作成されるのですが、TeXでコンパイルしても画
>像が表示されません。
>ワードなどではファイルを読み込むことすらできません。
ANさん、isizakaさんの指摘の通りです。
1)ned、nad、ngraphは同じフォルダに全て解凍しておく
2)例えばDvioutなどのTeXのdviファイルのビュアーでは、GSを入れない限り表示されません。
http://www.matsusaka-u.ac.jp/~okumura/texfaq/
の、DVIOUTやGS関連のリンクや、書籍を検討下さい。上記サイトとリンクでまず全て解決できるはずです。当方では何の問題もなく表示できていますので、ngraph側の問題ではないです。
3)WordなどはEPSファイルを画像としてサポートしていません。従って当然貼り付けても画像は出ません。クリップボードコピーでは解像度に問題がある、ということなら、Photoshop等の画像処理ソフトでGIFやPNGに変換してから貼り付ける、という手もあります(私は主にこれでやっています)。
ともかく、EPSファイルがきちんとできているので有れば(EPS対応の画像処理ソフトでご確認下さい)、自分の利用ソフト側の環境の問題ですので、これまでの返事で対応できない場合には、ここよりもTeXやワープロソフトの掲示版やFAQをあたるべきです。
> n-graphの範囲外となってしまいますが、
ということは、EPSファイル自体はきちんとできている、ということですね。
N-GraphがWindowsで継続されていたのですね。
偶然このサイトを見つけて、あまりに懐かしいので、一言、書いています。
感激です。
MS-DOS時代には、会社の技術開発では、どれだけこのソフトが役立ったことか。会社がWindowsに移行しても、232Cからの取り込みルーチンを完成させていたために、ずっとMS-DOSを使い続けていたことを思い出します。またお客さんに持っていくデータを、苦労して取り込んだことや、たくさんのいろいろな思い出が、このN-Graphとともにあります。
てっきり開発が終了してしまっていたものと思って、同じような機能を持ったWindowsソフトをかなり探しました。本当に苦労して探しました。数年前にやっと見つけたアメリカ製の物(かなりマイナーな製品ですが、当時のN-Graphと同等の機能を持っています)を使っています。
でも今のN-Graphをダウンロードさせて頂いて、試用してみます。
友人にも伝えます。彼も喜ぶことでしょう。
ANさん、こんにちは。
tadaさんの仰る通りで[出力]-[外部ドライバ]です。tadaさん、
どうもありがとうございます。
> ると、EPSファイルは作成されるのですが、TeXでコンパイルし
> ても画像が表示されません。
私自身 EPSファイルは TeX と共に多様していますが問題なく
使えています。先ほどWord でも試しましたが、正しくEPSと
して認識しているようです。
ただし、「画像の表示」が印刷ではなくプレビューだとしますと
注意が必要です。最近の TeX のプレビューアは GhostScript な
どを用いてEPSのプレビュー画像を自動生成する機能が付いてい
るものもありますので、EPSにプレビュー用イメージは入れてい
ません。ですから、この機能を持たないプレビューアではプレ
ビューイメージは表示されません。実際、Word にはこの機能が
ありませんのでEPSの位置を示す枠だけが表示されます。もちろん
Word にはEPSを用いなくても、クリップボードを使って貼り付け
れば良い訳ですから、問題は無い筈です。
> n-graphの範囲外となってしまいますが、
この意味が分かりませんが、外部ドライバのインストールは正し
く行われているのでしょうか?外部ドライバの最新バージョンを
このサイトからダウンロードして、Ngraphをインストールした
のと同じフォルダに展開してください。
CNさん、こんにちは。
> > 軸目盛数字をベキ乗で表示しようと思いましたが,乗数にプラス記号が表示されてしまいます.
軸スケールを100000の様に大きくした時、自動的に規格化して
[1×10^+5] が付加されますが、これは単なる補助機能の位置
付けです。グラフを綺麗に清書する場合には、数式変換機能で
Y/100000 とするなりして手動で規格化し、軸の説明で適当な
単位を付けるなり [1×10^5] と入れるなりしてください。
ちなみに、この自動規格化機能が働く桁数は[軸]-[目盛り数字]
-[自動スケール] の値で決まっていて、デフォルトは 5桁です。
tada様ありがとうございました。
実際やってみたところ、「出力」→「外部ドライバ」を実行すると、EPSファイルは作成されるのですが、TeXでコンパイルしても画像が表示されません。ワードなどではファイルを読み込むことすらできません。n-graphの範囲外となってしまいますが、返答いただければ幸いです。
> グラフをTeXで利用できるようにEPS形式で保存したいのですが、これは可能ですか?
→付属ドキュメント(nedファイルのdriver.txt)ぐらいは読みましょう。私が答えることではないですが。
とても簡単にできます。
Ngraph for Win上からは、メニューの「出力」→「外部ドライバ」。
グラフをTeXで利用できるようにEPS形式で保存したいのですが、これは可能ですか?
はじめまして
軸目盛について質問があります
軸目盛数字をベキ乗で表示しようと思いましたが,乗数にプラス記号が表示されてしまいます.
たとえば「1000」だと「1×10^+3」ではなく「1×10^3」のように
私としてはプラス記号は表示したくありません.
これはどうにもならないのでしょうか。
よろしくお願いします。
isizaka様
> 所々と言う事は、軸全体が1cm上にずれるとかではなくて
> 軸が途中で途切れて上にずれたりすると言う事でしょうか?
軸全体がずれますね。データは全体がずれる場合と、途中から
ずれる場合があります。文字もずれます。
> それと、外部ドライバの gra2prnw.exe を使って印刷しても
> 同じでしょうか?
試してみましたところ、こちらでは問題が起こらないようです。
原因究明が難しそうですから、今後はこちらの方法で印刷する
ようにしたいと思います。ありがとうございました。
ikezawaさん、こんばんは。
>失敗するようになりました。具体的にはグラフの構成要素
>(軸タイトルとかグラフそのもの)が所々上に1cm程度ずれて
>しまいます。
所々と言う事は、軸全体が1cm上にずれるとかではなくて
軸が途中で途切れて上にずれたりすると言う事でしょうか?
それと、外部ドライバの gra2prnw.exe を使って印刷しても
同じでしょうか?([出力]-[外部ドライバ]で Windows を選択)
gra2prnw.exe と Ngraph では微妙に印刷ルーチンが異なるので
gra2prnw だと上手く行く可能性があります。
いつもお世話になってます。
だいぶ前から使わせていただいているのですが、最近WindowsXP上でNgraphを使っていて、プリンタでの印刷に関して問題が発生して困っています。
HP社のプリンタを愛用しているのですが、最近psc2150という機種に買い換えたところ、グラフの印刷にかなりの確率(>90%)で失敗するようになりました。具体的にはグラフの構成要素(軸タイトルとかグラフそのもの)が所々上に1cm程度ずれてしまいます。一つ前の990cxiという機種でも極まれに同じ問題が起こっていました。今はeps出力をpdfに変換して印刷したり、Wordに貼り付けたりして誤魔化しています。プリンタ自体は他のドキュメントの印刷に失敗するようなこともないので問題無いように思うのですが、たまたま組み合わせが悪いのでしょうか?同じような症状の方居られませんか?
James Bond さん、こんばんは。MI6はいかがでしょうか?
> データファイルの最大カラム数は99個ですが、それ以上に出来ないでしょうか?できれば、200個くらい。
分かりました。次期バージョンでは 999カラムまで扱えるように
します。数式変換の %01 等は %1, %01, %001 のどの表記でも良
いように変更します(既に変更完了しました)。
データファイルの最大カラム数は99個ですが、それ以上に出来ないでしょうか?できれば、200個くらい。
K.N.さん、申し訳ありませんが、少しまとめてご質問願います。
一動作毎に質問されても困ります。
ライセンスをお持ちなのかどうか分かりませんが、Ngraph はラ
イセンスのご購入前に試用ができるようになっております。試用
して製品に納得なされた方がライセンスをご購入なされるので
あって、「ライセンスを購入してから後で使い方を聞けば良い」
と言うのでは当方としては対処しきれません。
また質問ですいません。
「NGRAPH.EXE と同じディレクトリに解凍するだけで、Ngraph の[出力]-[外部ドライバ]メニューから使用することができます。」と書いてありますが、ただ単に解凍するだけではだめなのでしょうか?「同じディレクトリ」とはどういうことでしょうか?
K.N. さん、こんばんは。
アドイン集は別配布になっています。download のページから
nadxxx.zip をダウンロードしてインストールしてください。
たびたびすいません。APPEND をダブルクリックすると。エラーメッセージが出て、shell:no such file‘append.nsc` と出てしまいます。なぜでしょうか?
K.N.さん、こんばんは。
> 返答ありがとうございます。〔グラフ〕−〔アドイン〕でスクリ
> プトのところを「APPEND」にして、オプションのところを
>「C:/ ・・・」のようにグラフのファイル名を指定すればよい
> のでしょうか?
いえ、オプションは何も指定せずに、APPEND を選んで OK を押
してください(あるいは APPEND をダブルクリックして頂いて
も良いです)。後はファイル選択のダイアログボックスが出ます
ので、append したいファイルを指定してください。
伊東さん、こんばんは。
> > なぜ sprintf でうまく動作しないのかは分からないのですが、
確認しました。確かに表示されなくなっていますね。sprintfは
sjis では動作しなくなってしまったと言う事なのでしょうね。
不思議です。修正致しました。
ファイル名の日本語表示の方は、変換する必要が無いeuc文字列
が、ExtTextOut() の中の sjis->euc 強制変換で誤変換されて
しまうのが原因なのでしょうね。こちらの法は ExtTextOut の
変換部分を取り除いて、必要部分 (Legend Window の Property)
だけ sjis->euc 変換を行うようにしたいと思います。
>あと、Ngraph.ini の font_map 指定で
>font_map=Mincho,normal,1,-kochi-kochi mincho-medium-i-normal--*-*-*-*-p-*-jisx0208.1983-0
>のようにスペースをふくんだフォントを指定できません。
こちらの方は私も Vine をバージョンアップしたときに気付き
まして修正済みです。
どうもありがとうございました。
tanakaさん、こんばんは。
> Evaluation windowのデータをクリップボードに保存するボタン
> を追加する簡単なパッチを作ってみました。
どうもありがとうございます。
大変に遅くなりましたが(^^;)リンクとダウンロードのページを
「X11用各種パッチ」と変更させて頂きました。
返答ありがとうございます。〔グラフ〕−〔アドイン〕でスクリプトのところを「APPEND」にして、オプションのところを「C:/ ・・・」のようにグラフのファイル名を指定すればよいのでしょうか?
度々失礼します。
> いつからかはよく分からないのですが(OS を Vine 2.6 にアップデートてから?)
> Legend Window の property で漢字が表示されなくなってしまいました。
> 原因はよく分からないのですが、以下の修正でちゃんと表示されるようです。
なぜ sprintf でうまく動作しないのかは分からないのですが、Legend Text を
copy するときの Single Select dialog でも日本語が表示されないのでいじっ
てみました(例によって ad hoc な修正ですが)。
# SJIS ---> EUC は CopyDialogSetup() に組み込むべきかとも思ったのですが
# そうすると今度は EUC を使った日本語ファイル名が化けるので...
*** org/x11lgnd.c 2002-11-20 19:01:01.000000000 +0900
--- x11lgnd.c 2002-11-21 12:50:22.000000000 +0900
***************
*** 128,134 ****
if ((s=(char *)memalloc(128))==NULL) return NULL;
getobj(obj,"text",id,0,NULL,&text);
if (text==NULL) sprintf(s,"%-5d",id);
! else sprintf(s,"%-5d %.64s",id,text);
return s;
}
--- 128,152 ----
if ((s=(char *)memalloc(128))==NULL) return NULL;
getobj(obj,"text",id,0,NULL,&text);
if (text==NULL) sprintf(s,"%-5d",id);
! else{
! sprintf(s,"%-5d ",id);
! strncat(s, text, 64);
! }
! #ifdef JAPANESE
! {
! int i;
! unsigned int jis;
! /* SJIS ---> EUC */
! for (i=0;i<strlen(s);i++) {
! if (niskanji((unsigned char)s[i])) {
! jis=njms2jis(((unsigned char)s[i] << 8)+(unsigned char)s[i+1]);
! s[i]=(jis >> 8) | 0x80;
! s[i+1]=(jis & 0xff) | 0x80;
! i++;
! }
! }
! }
! #endif
return s;
}
いつもお世話になっています。
いつからかはよく分からないのですが(OS を Vine 2.6 にアップデートてから?)
Legend Window の property で漢字が表示されなくなってしまいました。
原因はよく分からないのですが、以下の修正でちゃんと表示されるようです。
*** org/x11lgnd.c 2002-11-20 19:01:01.000000000 +0900
--- x11lgnd.c 2002-11-20 19:43:01.000000000 +0900
***************
*** 2670,2676 ****
getobj(d->obj[k],"text",i,0,NULL,&text);
rect.x=x;
rect.width=25*w;
! len=sprintf(buf,"%.25s",text);
ExtTextOut(disp,win,gc,x,y,&rect,buf,len);
x+=25*w;
break;
--- 2670,2678 ----
getobj(d->obj[k],"text",i,0,NULL,&text);
rect.x=x;
rect.width=25*w;
! strncpy(buf, text, 25);
! buf[25] = '\0';
! len = strlen(buf);
ExtTextOut(disp,win,gc,x,y,&rect,buf,len);
x+=25*w;
break;
ついでに、Data Window, Merge Window でも日本語ファイル名が
正常に表示されない場合があるのもちょっといじってみました。
Unix では日本語ファイル名を使うことはほとんど無いとは思いま
すが、使うとしたら EUC だと思いますので...
diff -c org/x11file.c x11file.c >> patch
*** org/x11file.c 2002-11-20 19:01:01.000000000 +0900
--- x11file.c 2002-11-20 19:09:11.000000000 +0900
***************
*** 3569,3574 ****
--- 3569,3590 ----
rect.x=x;
rect.width=12*w;
if (bfile!=NULL) {
+ #ifdef JAPANESE
+ {
+ /* EUC ---> SJIS */
+ int i;
+ unsigned int jms;
+ for (i=0;i<strlen(bfile);i++) {
+ if ((bfile[i] & 0x80) && (bfile[i+1] & 0x80)) {
+ jms=njis2jms((((unsigned char)bfile[i] << 8)
+ +(unsigned char)bfile[i+1]) & 0x7f7f);
+ bfile[i]=jms >> 8;
+ bfile[i+1]=jms & 0xff;
+ i++;
+ }
+ }
+ }
+ #endif
ExtTextOut(disp,win,gc,x,y,&rect,bfile,strlen(bfile));
memfree(bfile);
} else
diff -c org/x11merge.c x11merge.c >> patch
*** org/x11merge.c 2002-11-20 19:01:01.000000000 +0900
--- x11merge.c 2002-11-20 19:10:12.000000000 +0900
***************
*** 526,531 ****
--- 526,547 ----
rect.x=x;
rect.width=12*w;
if (bfile!=NULL) {
+ #ifdef JAPANESE
+ {
+ /* EUC ---> SJIS */
+ int i;
+ unsigned int jms;
+ for (i=0;i<strlen(bfile);i++) {
+ if ((bfile[i] & 0x80) && (bfile[i+1] & 0x80)) {
+ jms=njis2jms((((unsigned char)bfile[i] << 8)
+ +(unsigned char)bfile[i+1]) & 0x7f7f);
+ bfile[i]=jms >> 8;
+ bfile[i+1]=jms & 0xff;
+ i++;
+ }
+ }
+ }
+ #endif
ExtTextOut(disp,win,gc,x,y,&rect,bfile,strlen(bfile));
memfree(bfile);
} else
あと、Ngraph.ini の font_map 指定で
font_map=Mincho,normal,1,-kochi-kochi mincho-medium-i-normal--*-*-*-*-p-*-jisx0208.1983-0
のようにスペースをふくんだフォントを指定できません。
Ngraph.ini の書式を変更することになってしまいますが、
区切り文字にスペースを含まないようにしていただくこと
は可能でしょうか。
以上、御確認いただければ幸いです。
使用環境は
Vine Linux 2.6
kernel 2.4.19
glibc 2.2.4
gcc 2.95
XFree86 4.2.1
Ngraph 6.03.16
です。
K.N さん、こんばんは。
>〔グラフ〕−〔アドイン〕の手順でよいのでしょうか?
はい、その通りでして [グラフ]-[アドイン] の間違いです。
古いバージョンで [アドイン]-[実行] メニューにしていた
のですが、直すのを忘れてしまいました。
ご指摘、どうもありがとうございます。
いつも重宝させていただいております。質問なのですが、1つのページにグラフを複数載せるとき、NGPファイルの場合APPENDが用意されているとマニュアルには書いてありますが、〔アドイン〕−〔実行〕というのが使用している6310バージョンには無いのですがどうしたらよいでしょうか?〔グラフ〕−〔アドイン〕の手順でよいのでしょうか?ぜひ初心者にも分かりやすく教えていただけると幸いです。
SegVさん、こんばんは。
> [対策] x11/x11lgnd.c: LegendTextDefDialogSetupItem() の、
> XmListDeleteAllItems(XtNameToWidget(w,"*font")) (二カ所あります)を
> XmListDeleteAllItems(GetComboBoxList(w,"*font")) に変えると
> 落ちません。
仰る通りです(^^;)。open motif だと落ちないので気づきません
でした。ComboBox は GetComboBoxList サブルーチンを、それ以
外のリストボックスは XtNameToWidget を直接使うように使い分
けているのですが、間違えてしまいました。
ご指摘、どうもありがとうございます。
Konadara/MNU Linux (改)上で、Lesstif-0.90.9 に dynamic link、
Interleaf の ComboBox はなし(gcc-2.95.2, -DJAPANESE)、
で一部不具合はありますが、便利に使わせて頂いております。
不具合の一つを消す方法が判りましたのでお知らせしておきます。但し、
お勧め頂いている方法でコンパイルしていないし、私は Widget は知らないので、
全くお役に立たなかったら申し訳ありません。
[症状] 「設定」->「レジェンドテキスト初期状態」をクリックすると、
Warning __XmStringSegmengExtent: got NULL FontList
を吐いて落ちる。
[対策] x11/x11lgnd.c: LegendTextDefDialogSetupItem() の、
XmListDeleteAllItems(XtNameToWidget(w,"*font")) (二カ所あります)を
XmListDeleteAllItems(GetComboBoxList(w,"*font")) に変えると
落ちません。
oshikiriさん、こんばんは。
> で、出来れば自前のプリンターでうまくいけばと思った次第です。
> ちょっと不可解な現象なので、原因がよく解りません。
> USBの問題でしょうか?
これは正直さっぱり分かりません。印刷に関しては Ngraph 側
ではプリンタを見て動作を変えている訳ではないので、あるプ
リンタでは印刷できて、別のプリンタでできないとなると???
です。
#ただ一点、位置がずれるとはどの様にずれるのかは気になり
#ます。例えば、グラフのフレーム(軸)が画面で正方形なら、
#印刷しても正方形なのでしょうか?
それと、外部ドライバを使って印刷した場合でも同様でしょ
うか?
isizakaさんありがとうございます。
メタファイルにしたところ正常になりました。
印刷の方は直接USBで接続したEPSON LP-800SとCanon BJF660ともに
軸や軸の数字(特に肩付きの文字)は、ずれて印刷されてしまいます。
OSはWIndowsXPsp1です。サービスパック当てる前と後でも症状は変わっ
ていません。
グラフィックドライバーは今のところメーカーから出ている最新のものだと思
います。
全く同じファイルをPentiumIII 500MHzのWIndowsXPの機種で、同じく
USB接続した上記プリンターで印刷すると正常です。こちらでは、拡張メタ
ファイルでのコピー・ペーストも問題ありません。
ちなみにネットワーク接続された、CanonのLBP930EXで印刷すると、Crusoeの機種でも問題なく印刷出来ました。
とりあえずはこれで印刷したいと思いますが、ちょっと離れたところにあるの
で、出来れば自前のプリンターでうまくいけばと思った次第です。
ちょっと不可解な現象なので、原因がよく解りません。
USBの問題でしょうか?
WordやExcelでの印刷は特に問題ありません。
inagaki さん、こんばんは。
Ngraph のフィットは y=f(x) の一価関数に限られています。
理由は、フィットが Δy の二乗和を最小化する最小二乗法だ
からで、二価関数に対しては Δy が一意に決まりません。
詳しくは知りませんが、円でフィットするとなると、 Δy
の二乗和を最小化すると言うよりも、
(円の中心とデータ点までの距離) - (円の半径)
の二乗和を最小化するのが適当の様に思えます。いずれにせよ
Ngraph ではできないです。
oshikiriさん、こんばんは。
> > 操作系やNgraphでの表示は全く問題ないのですが、Wordに貼り付けると
> 縦横比が2:1の縦長の表示になってしまいます。
Crusoe はさっぱり分からないのですが、クリップボードに
コピーする時に拡張メタファイルではなくて、「メタファイル」
を選んでも症状は同じでしょうか?
私はあまりお役に立てそうに無いのですが、参考までにOSも
教えて頂けないでしょうか?それからディスプレイドライバの
最新版がもし出ていれば試す価値はあると思います。
それと、私も、他に同じ症状が有るのかどうか知りたいので、
もし同じ症状の方がいらっしゃいましたら、ご一報をお願い
します。
10点を通る近似円の式を求める目的でNgrap for Windows 6.3.16をDownLoadして使ってみました。フィッティングの種類でUSER定義式に円の式を入力しましたが求まりませんでした。円の下半分のデータをマスクすると半円の近似はできましたが、このソフトのアルゴリズム上、円の近似式は求めることはできないのでしょうか。宜しくお願いします。
いつもお世話になります。
Ngraph-6-3-16 for X11用に、
Evaluation windowのデータをクリップボードに保存するボタン
を追加する簡単なパッチを作ってみました。
ご興味がある方はこちらへどうぞ。
http://homepage3.nifty.com/ttk/comp/ngraph/index.html#eval_clip
isizakaさんこんにちは。以前MacOS Xでの動作について質問させて頂いた
oshikiriと申します。
これについてはもう少しUNIXの勉強をしてから再度お伺いしたいと思います。
ところで最近モバイル用にFMV-LOOX86TAというトランスメタのCrusoe
チップを積んだモデルを買ったのですが、今まで使っていたWin32用Ngraph
では現れたことのない症状に困っております。
操作系やNgraphでの表示は全く問題ないのですが、Wordに貼り付けると
縦横比が2:1の縦長の表示になってしまいます。
あと、印刷がX,Y軸ともずれたり、軸の数字がずれたり、斜めの線の場合ギザギザ
に表示されたりと、出力がうまくいきません。
これはこのパソコン固有の問題なのか、それともCrusoeがだめなのか、解りかねています。
どなたか、Crusoeチップを積んだパソコンで、Ngraphを使用されている方、
同じような症状が出ていないか教えては頂けないでしょうか?
よろしくお願い致します。
yagiyagiさん、こんばんは。
> 外部ドライバを追加しようとすると、エラーが起きNgraphが落ちるのですが、原因はなんでしょうか?
すみません、単純なミスでした。Windows版、Linux版共に落ち
ます。ご面倒をお掛けしますが、ドライバを追加する際には
(1) Ngraph.ini をエディターで開きます。
(2) ext_driver= .... の行のどれかをコピーして同じ行を2つ
にし、Ngraph.ini を保存します。
(3) Ngraph の[設定]-[外部ドライバ]-[設定] で増やした項目
の内容を設定します。
の手順でお願いします。ご指摘ありがとうございました。
外部ドライバを追加しようとすると、エラーが起きNgraphが落ちるのですが、原因はなんでしょうか?
OSはXPです。
よろしくお願いします。
tanakaさん、こんばんは。
> 自己フォローです。
> Information windowも同様の変更で、
> x11demo/demo2.ngpのようなケースで、
> 字が読めるようになりました。
はい。お気づきの通り、今の所フィット結果だけが Information
Window に表示されます。確かに Coordinate Window と
Information Window は foreground の指定が抜けていますね。
修正致します。ご指摘どうもありがとうございます。
> Information windowも同様だと思いますが、
> このwindowは現在使われていない
> (=何も書かれないのは正しい動作)のでしょうか。
自己フォローです。
Information windowも同様の変更で、
x11demo/demo2.ngpのようなケースで、
字が読めるようになりました。
いつもお世話になります。
Solaris8 (sparc)での不具合の報告です。
バージョンはNgraph-6.3.16 for X11です。
今まで本来Coordinate windowに書かれるべき字が見えませんでした。
調べたら、XDrawStringで書かれる字が
そのままでは白地に白字になっていることが分かりました。
取り敢えず下のような感じに手を入れると
白地に黒字になって読めるようになりました。
もっといい方法があるのかも知れませんが、
ご報告まで。
余談ですが、Information windowも同様だと思いますが、
このwindowは現在使われていない
(=何も書かれないのは正しい動作)のでしょうか。
*** x11/x11cood.c_org Sun Jul 7 00:47:17 2002
--- x11/x11cood.c Tue Oct 15 19:17:24 2002
***************
*** 119,124 ****
--- 119,126 ----
if (d->text==NULL) return;
gc=XCreateGC(XtDisplay(d->text),XtWindow(d->text),0,0);
XClearArea(XtDisplay(d->text),XtWindow(d->text),0,0,0,0,FALSE);
+ XSetBackground(XtDisplay(d->text),gc,WhitePixel(XtDisplay(TopLevel),0));
+ XSetForeground(XtDisplay(d->text),gc,BlackPixel(XtDisplay(TopLevel),0));
CoordWinDrawText(gc);
XFreeGC(XtDisplay(d->text),gc);
}
***************
*** 144,149 ****
--- 146,153 ----
dd=(XmDrawingAreaCallbackStruct *)call_data;
e=(XExposeEvent *)(dd->event);
gc=XCreateGC(e->display,e->window,0,0);
+ XSetBackground(XtDisplay(d->text),gc,WhitePixel(XtDisplay(TopLevel),0));
+ XSetForeground(XtDisplay(d->text),gc,BlackPixel(XtDisplay(TopLevel),0));
CoordWinDrawText(gc);
XFreeGC(e->display,gc);
}
> マキさん、こんばんは。
>
> > Ngraphで描いた図を
> > どうしたらWordに貼り付けれるのか
> > ネットで調べたのですが...
>
> 通常のソフトの[編集]-[コピー]に相当するのは、Ngraphでは
> [出力]-[クリップボード] メニューです。このメニューを選択
> すると「クリップボード」のダイアログボックスが開きますが
> 何もせずに OK で閉じてください。
>
> 後は Word で「貼り付け」を行ってください。
早速試してみましたところ、できました!
isizakiサンありがとうございます。
画像変換できるソフトがあるのなら、epsファイルに出力して、適当な画像形式にしてWordに貼り付ける(挿入する)手があります。解像度が高すぎると重くなりますが。
マキさん、こんばんは。
> Ngraphで描いた図を
> どうしたらWordに貼り付けれるのか
> ネットで調べたのですが...
通常のソフトの[編集]-[コピー]に相当するのは、Ngraphでは
[出力]-[クリップボード] メニューです。このメニューを選択
すると「クリップボード」のダイアログボックスが開きますが
何もせずに OK で閉じてください。
後は Word で「貼り付け」を行ってください。
erikoさん、こんばんは。
> 実は、Ngraph初心者なんですけど、初心者でも分かりやすく説明してるようなサイトってあります?
サイトは知りませんが、マニュアルの「チュートリアル」を
まずご覧になって頂けると、グラフ作成の基本操作が分かる
ようになっています。
また、当サイトの「user's manual」のページ
http://www2e.biglobe.ne.jp/~isizaka/faq.htm
に UNIX USER誌に連載した記事の PDF ファイルを置いておき
ました。はじめのインストールの部分は UNIX版用ですが、そ
れ以外は Windows と共通です。一応分かりやすく書いたつも
りです。
皆さんはじめまして。
早速ですが、困っています。
Ngraphで描いた図を
どうしたらWordに貼り付けれるのか
ネットで調べたのですが...
学校の宿題で図をWordに貼りたいのですが、
どうしたらいいかわかりません。
どなたか教えてください。
お願いします。
みなさん初めまして。
実は、Ngraph初心者なんですけど、初心者でも分かりやすく説明してるようなサイトってあります?
Nakagiriさん、こんばんは。
> マザーボードがついに駄目になりました。ヨドバシカメラに
> ソフトを買いにいったところ、インターネットからインスト
> ールできることをしらされました。実際にやってみたのです
> が、うまくインストールできませんでした。
まず、マザーボードが壊れてしまったパソコンは、修理なされ
たのでしょうか? それとも、現在一般に販売されている IBM
互換機のパソコンを新調なされたのでしょうか?
1992年当時の PC-9801シリーズのノートパソコンで Ngraph を
お使いになりたいのか、あるいは新しいパソコンで Ngraph を
お使いになりたいのかで答えが異なります。
(1) 1992年当時の PC-9801シリーズのノートパソコンを修理なされた場合
現在、当サイトでは PC-9801 シリーズ用の Ngraph の配布は
既に終了しております。ですが、download のページの一番下
の方に書いてあります、
■ 弘前大学・知能機械システム工学科ftpサーバ
*DOS版 Ngraph とドライバー等関連ソフト
あるいは
Vector Software PACK
*DOS版 Ngraph とドライバー等関連ソフト
から入手可能です。
(2) IBM互換機を新調なされた場合
通常 OS として、Microsoft Windows がインストールされてい
ると思います。Windows 用の Ngraph が、当サイトの download
ページからダウンロードできます。Windows 用の Ngraph には
2種類ありまして、PC-9801シリーズ DOS用と外見も操作性も
全く同じ Classic (version 5.45) と、新しい version 6.x
があります。どちらでも、昔の PRM ファイルを読み込む事が
できますので、昔のグラフは生き返ります。
ヨドバシカメラの店員の方が、「Ngraphはインターネットから
インストールできる」と仰られたのでしょうか?ひょっとして、
店員の方は PC-9801のエミュレターソフトの事を言われたので
はないかと想像するのですが…。
tanakaさん、こんばんは。
> gcc 2.7.2.3 で -munaligned-doubles のオプションで動きました。
> gcc 2.95.3は上記オプションを付けてもNGです。src/object.cをいじってOKになります。
> > ご参考まで。
重要な情報、どうもありがとうございます。
src/object.c の問題ですが、他にも arraynew() とかの malloc
でメモリを取得してポインタでアクセスしている部分はこれで
良いのか、その辺が(私は勉強不足で)よく分からないと言う
のが本音です。もうちょっと勉強しないといけませんね(^^;)。
私は1992年当時のNEC98ノートPCにインストールしたNgraphで研究論文用のデータ図を作成しています。ところが、先日そのPCのマザーボードがついに駄目になりました。ヨドバシカメラにソフトを買いにいったところ、インターネットからインストールできることをしらされました。実際にやってみたのですが、うまくインストールできませんでした。
どの版をどのように行えば首尾よくインストールできるかを教えて下さい。1992年当時のNgraphで作成したファイルを生き返らせたいのです。
宜しく教えて下さい。
> > > (2)hsbかesl
> これは、HSB --> RGB の変換関数を通して、現在の COLOR 関数
> を使うのでは不便と言う事ですよね?
そうですね。確かに現行バージョンでも
沢山場合わけしてR,G,Bそれぞれに値を入れれば可能でした。
#でも、やはり大変です。
> なんとか HSB(x,y,z), RGB(x,y,z) の
> 2つを追加してみます。
どうもすみません。
今更ですが、solaris + gccでの作り方の話です。
> [3] byte alignの問題ですが、
> そのままだと Solaris+gcc では
> segmentation faultで落ちてしまいます。
bus errorでした。訂正します。
> その昔の私の環境では、
> gccのオプション -munaligned-doubles を付ければ
> この問題が回避できていたのですが、
> 最近の私の環境ではうまくいきません。
> gccのバージョンが変わったせいか、
> Solarisのバージョンが変わったせいかは不明です。
gcc 2.7.2.3 で -munaligned-doubles のオプションで動きました。
gcc 2.95.3は上記オプションを付けてもNGです。src/object.cをいじってOKになります。
ご参考まで。
tanakaさん、こんばんは。
> > (1)graとcurveto
グラフで用いられる曲線は、必ずしもベジエで展開できる2次
曲線だけではないですから、Ngraph の(楕円以外の)出力は直
線に展開するしかない訳です。legend-curve は二次曲線ですか
ら curveto が使えるかも知れませんが、上記の様に別の曲線で
直線への展開が行われる以上、GRAドライバの負担を軽減する為
にも、直線で展開してしまうのが良いように思えます。
となると、curveto は GRA の取り込み、および、取り込まれた
curveto の GRA 出力だけでしか使われない事になるのですが、
確かに規格として定義しておくのは良いような気もします。
考えてみます。
> > (2)hsbかesl
> hueだけでも効果が大きいし自分で使うので上記のものを作りました。
> 正式版できちんと対応していただければ、
> Ngraphの表現力も増えるのではないか、と思います。
これは、HSB --> RGB の変換関数を通して、現在の COLOR 関数
を使うのでは不便と言う事ですよね?(確かに HSB ---> RGB
の変換は面倒ですね)。なんとか HSB(x,y,z), RGB(x,y,z) の
2つを追加してみます。
こんばんは
pstoeditが新しくなっていたのでpstoedit用のパッチを更新しました。
また、
> 数式変換の関数のCOLORをHSBで指定できるようにする
ですが、hue(色相)だけできるようにするパッチを作りました。
demo1.ngpのようなものが虹色になります。
ご興味がある方は下記URLへどうぞ。
isizakaさんに
大変お忙しいところ恐縮ですが、
要望が二つあります。
(1)graとcurveto
graの仕様拡張の計画がおありなのでしたら、
pstoeditがらみで言うと、PostScriptのcurveto(3次ベジェ曲線)に
相当する命令を入れてくれると非常にうれしいです。
pstoeditのフロントエンドは「曲線を全て3次ベジェ曲線に変換する」か、
または「ポリゴンに近似する」かどちらかを選んで出力する形に
なっており、現在は後者を使っています。
曲線を多角形で近似する必要性がほとんど無くなり、
円は円のまま変換され、
曲率半径の小さい曲線も美しく変換できるハズです。
gra2hogeの全てに関わってくるなど、いろいろ弊害もあるかもしれませんが、ご検討いただければ幸いです。
(2)hsbかesl
hueだけでも効果が大きいし自分で使うので上記のものを作りました。
正式版できちんと対応していただければ、
Ngraphの表現力も増えるのではないか、と思います。
両方とも、全然切迫しているわけではありませんので、
ゆっくりとご検討いただければ幸いです。
yamakanさん、補足します。
> > 軸の設定に合わせて、その位置を計算するしか方法は無いと
> 思います。
これに関しては、次期バージョンで file オブジェクトに
getcoord と言うメンバ関数を追加する事にします(既に完了)。
get file getcoord="1.0 2.0"
とすると、file に設定された x-軸, y-軸 から設定を読み取り、
(1.0, 2.0) に対応するペーパー上の座標値(x,y)を計算して返
す関数です。
K.N さん、こんばんは。
> ところで、簡単な質問なのですがX軸の値の範囲を0〜56と
> して増分を10とかにするとグラフ上では0、20、40しか
> 表示されません。最終値である56も表示させたいのですが、
> どうすればよいでしょうか?ぜひ、教えてください。
通常、こう言うグラフは作成しないと思いますので、その機能
はありません。手動で legend-text で入れてください。
yamakanさん、こんばんは。
> ただ、この方法だと実行時のエラーが出たところで止まってしまうので、
> エラーの場所と原因は判るのですが、スクリプトが全て実行されて
> 実行結果が思ったとおりでない時に、どこが悪かったのか判りません。
これは Ngraph に限らず、プログラムのデバッグの初歩的質問
だと思います。途中で適当な変数の値を表示させるとか
(echo)、途中でポーズさせるとか(readを使ってキー入力させ
る事で一時停止する)、色々と方法が有ると思います。
> 描画する場所が1時間毎の場所に描かれてしまい、うまくいきません。
> x軸の変換数式は、両方とも(日付)+(時刻)/24としています。
軸の設定に合わせて、その位置を計算するしか方法は無いと
思います。
> のでしょうか。レジェンドにつけた名前も表示されると、デバッグのときに
> とても便利なんですが、現在表示させる方法がないのであれば、
> 次回のバージョンアップの時にぜひ表示させられるようにして戴けませんか。
付ける事は容易い事ですが、GUIにスクリプトのデバッグ機能
を付けるつもりはありませんので(ほとんどのユーザにとって
必要では無い機能ですから)、これはご要望にはそえません。
どうもすみません。
isizakaさん、おはようございます。
矢羽のスクリプトでは大変お世話になっています。
ところで、line等のレジェンドに名前(name)を付けられるようになっていますが、
レジェンドウィンドウでは、インスタンスの番号しか確認できない
のでしょうか。レジェンドにつけた名前も表示されると、デバッグのときに
とても便利なんですが、現在表示させる方法がないのであれば、
次回のバージョンアップの時にぜひ表示させられるようにして戴けませんか。
大変重宝させて頂いています。
ところで、簡単な質問なのですがX軸の値の範囲を0〜56として増分を10とかにするとグラフ上では0、20、40しか表示されません。最終値である56も表示させたいのですが、どうすればよいでしょうか?ぜひ、教えてください。
isizakaさん、おはようございます。
> これも sh の標準機能なのですが、set -x -v とスクリプトの
> 先頭に入れておきますと、実行コマンド行がコンソール
> (コマンドプロンプトのウィンドウの事です)に表示され、
> コマンド置換、変数置換後の実行直前のコマンドが + に続いて
> 表示されます。
>
> [Ngraph]
> alloc_console=1
>
これは、これでちゃんと表示されました。有難うございました。
ただ、この方法だと実行時のエラーが出たところで止まってしまうので、
エラーの場所と原因は判るのですが、スクリプトが全て実行されて
実行結果が思ったとおりでない時に、どこが悪かったのか判りません。
デバッグ情報が表示されている画面を、1ページ表示したら止める
方法は無いのでしょうか。例えば、moreをどこかに入れるといったような。
> エラーが出ているのです。スクリプトの最後で
>
> del iarray:bx
> del iarray:by
> del int:i
> del int:j
> del int:m
> del int:n
これも、うまくいきました。有難うございました。
ところで、データを間引く方法はあるのでしょうか。
2つのデータファイルがあって、両方とも1時間毎のデータが入っています。
片方のファイルは、全てのデータを描画し、もう一方のファイルは
3時間毎に間引いて、一つのスケールのグラフに表示させたいのです。
現在は、X軸を共通にし、片方は読み込みステップを1とし、間引く
方は読み込みステップを3とするとデータは、間引いてくれているのですが、
描画する場所が1時間毎の場所に描かれてしまい、うまくいきません。
x軸の変換数式は、両方とも(日付)+(時刻)/24としています。
随分と、Ngraphと仲良くなれたのですがもう少しお付き合いいただけませんでしょうか。
wakayさん、補足です。
ディレクトリに関しては以前からずっとフルパスだった様な
気がします。これを相対パスに変更するには ja/Ngraph に
Ngraph*FileSelectionBox.pathMode: PATH_MODE_RELATIVE
を追加してください。私もこちらの方が見やすい気がします
ので、次期バージョンからはこれをデフォルトにしたいと
思います。
isizaka 樣
御返事ありがとうございます。
早速 open motif をインストールしてみます。
それでは失礼します。
wakayさん、こんばんは。
> 仕様の変更等があったのでしょうか? lesstif の仕様変更なのでしょうか? lesstif のバージョンは 0.91 です。
変更はしていません。ただ、前のバージョンは open motif の
ライブラリをスタティックリンクしていました。open motif を
インストールすれば以前と同じになると思います。
> 設定の方法などがありましたらご教示くだれば幸いです。
また、lesstif でもリソースファイル ja/Ngraph を変更すれば
良いとは思いますが、どう変更すれば良いのか詳しくは分かり
ません。すみません。
isizaka 樣
はじめまして。wakay と申します。
linux 版を愛用させて頂いております。
分からないことがありまして、教えて頂けたらと思います。
ファイル選択のダイアログ(ngp ファイルやデータファイルを開く場合など)で、ディレクトリ名やファイル名がフルパスで表示されてしまいます。6.3.13 を Vine Linux 2.1 で使っていたときはファイル名のみが表示されていたように思うのですが。現在は 6.3.14 を Vine Linux 2.5 で使用しております。
仕様の変更等があったのでしょうか? lesstif の仕様変更なのでしょうか? lesstif のバージョンは 0.91 です。
設定の方法などがありましたらご教示くだれば幸いです。
isizaka様
tadaです。
早速のご回答とお返事、ありがとうございました。御礼申し上げます。
tadaさん、こんばんは。
> Windows版の方へは通過点のチェックがはずれた状態で引き渡されてしまいます。
確認致しました。ver 6.0 の PRMファイル読込み部分のバグで
すので、ver 6.0 の方の次期バージョンで間違い無く修正され
ます。
ご指摘、どうもありがとうございました。
isizaka様、ご無沙汰しております。
主にWindows上でClassic5.45でグラフを作成し、印刷用にWindows版を利用しております。
Classicで特定点を通過するフィッティングをさせた場合、Windows版の方へは通過点のチェックがはずれた状態で引き渡されてしまいます。
ご確認いただければ幸甚です。
yamakanさん、こんばんは。
> 実行時にエラーが出てしまいます。で、デバッグをしているのですが、デバッグはNgraphシェルで一行一行入力するしか方法はないのでしょうか。
これも sh の標準機能なのですが、set -x -v とスクリプトの
先頭に入れておきますと、実行コマンド行がコンソール
(コマンドプロンプトのウィンドウの事です)に表示され、
コマンド置換、変数置換後の実行直前のコマンドが + に続いて
表示されます。
[グラフ]-[Ngraphシェル]から実行する場合にはコンソールが
現れていますが、アドインなどで実行する場合には通常はコン
ソールがありません。その場合には Ngraph.ini の先頭で
[Ngraph]
alloc_console=1
としてやりますと、常にコンソールが割り当てられます(入力
が常にできる訳ではありませんが、デバッグ情報は表示されま
す)。
> スクリプトを全部載せてしまうのは、反則気味ですが以下のような矢羽スクリプトで、(これ、反則であれば、遠慮なくおっしゃって下さい。)
反則と言う事はありませんが、さすがにソースを読むのには
時間が掛かりますので、私もギブアップしてしまう事が多い
と思います。
> line points illegal type object argument `4100 22000 0:4100.....`というメッセージがでてしまいます。
> どこが悪いのでしょう。
それは if を入れたからではなくて、2度目に実行した際に
エラーが出ているのです。スクリプトの最後で
del iarray:bx
del iarray:by
del int:i
del int:j
del int:m
del int:n
を入れて、不要になったオブジェクトを消去してください。そう
しないと 2度目に実行した時に、同じ name を持った int オブ
ジェクト等が生成され、get int:m -field @ とした時の出力は
0: 1
1: 1
の様に2つ出力されてしまいます。同じ name で2つヒット
するのですから、出力も2つです。
tanakaさん、こんばんは。
> unix/linuxとWindowsのマルチプラットフォームがNgraphの大きな利点の一つだと思いますし。
> 「GPLなX11版への改良や機能追加は有償のWindows版に反映されない」ような事態は望ましくないと思いますが、このあたりはどうなのでしょう。
はい。ご指摘の通りです。GPLにする時に考えたのは、もし仮に
Windows版非互換のバージョンが登場したとしても、それはそれ
で良いじゃないか、と考えました。もちろんUnix版は GPL です
から、GPLライセンスに従って別のバイナリを配布する事が可能
になっています。
ただ、ご想像の通り「私自身は Windows非互換になるような
パッチは採用できない」と言う事が言えます。ただ、もう一
つの事実として、Ngraph ver 6.0 のライセンスは徐々に
(あくまでも徐々にですが)に緩くなっていると言う事もあ
ります。
> 以前と同様、やはり石坂さんにお願いして改良して頂く形になるのでしょうか?
ここが難しいところでして…。私にまかせると非常に時間が掛
かってしまうと言う問題がありますし、かと言って、もし仮に
(仮にですよ)パッチをWindows版に適用しても構わないと言わ
れたとしても、道義的にやり難いと言う問題があります。
> 数式変換の関数のCOLORをHSBで指定できるようにするのをやってみていまして、
> demo1.ngpのようなものがカラフルになって、便利そうです。
バッティングしないように、私も少し予定を書きますと、GRA
ファイル関係で手を抜いていたマウスでの位置、サイズの変更
は次期バージョンでできるようになります(既に完了)。
それと、伊東さんのビットマップ合成スクリプトは、非常に便
利そうで、私も「目から鱗」状態だったのですが、速度的に直
接ビットマップを扱えないか?との要望を頂いていまして、現
在思案中です。GRAファイルにビットマップ関連のコマンドを追
加する事になりますので、色々と考えています。
矢羽のスクリプトでは大変お世話になっています。
darrayに不具合は、取り敢えずiarrayにすることで回避しました。風向や風速は1度単位で話をするものではないので、問題はありません。次期バージョンをお待ちしています。
ところで、矢羽スクリプトは、まだ完成していません。
実行時にエラーが出てしまいます。で、デバッグをしているのですが、デバッグはNgraphシェルで一行一行入力するしか方法はないのでしょうか。
すいません、もう一つ。
スクリプトを全部載せてしまうのは、反則気味ですが以下のような矢羽スクリプトで、(これ、反則であれば、遠慮なくおっしゃって下さい。)
#矢羽を書く
#dd 風向の入っている列
#ff 風速の入っている列
#xx X座標:風向グラフの軸に固定
#yy Y座標
#
ss=1000 #風速軸の大きさ30mm
name=0
rotc=`dexpr "-1*cos(pi*115/180)"`
rots=`dexpr "sin(pi*115/180)"`
new iarray name=bx @="0 0 0 0 0 0 0 0"
new iarray name=by @="0 0 0 0 0 0 0 0"
new int name=i
new int name=j
new int name=m
new int name=n
#
file:3:opendatac
while file:3:getdata
#1回のループで1個の矢羽根が書ける
do
name=`iexpr $name+1`
xx=${file:3:coord_x}
# yy=${file:3:coord_y}
yy=22000
ff=`get file:3 -field column:"${file:3:line} 5"`
ff=`iexpr "$ff/0.5144"` # m/s→knot
dd=`get file:3 -field column:"${file:3:line} 4"`
dd=`iexpr "$dd*22.5"` # 16方位→360度
ax=`dexpr "$ss*cos(pi*(90-$dd)/180)"`
ay=`dexpr "-1*$ss*sin(pi*(90-$dd)/180)"`
#羽根orペナントの出る座標の定義
int:n:@=0
while [ ${int:n:@} -le 7 ]
do
iarray:bx:put ${int:n:@} `iexpr "$xx+$ax*(1-0.13*${int:n:@})"`
iarray:by:put ${int:n:@} `iexpr "$yy+$ay*(1-0.13*${int:n:@})"`
int:n:@=${int:n:@}+1
done
#羽根orペナントの長さ
cx=`iexpr "($rotc*$ax-$rots*$ay)*0.4"`
cy=`iexpr "($rots*$ax+$rotc*$ay)*0.4"`
ff=`iexpr "$ff+2"` #2捨3入
#軸を書く
# name=`iexpr $name+1`
stx=`get iarray:bx -field get=0`
sty=`get iarray:by -field get=0`
if exist line:in$name
then
put line:in$name name:in$name points:"$xx $yy $stx $sty"
else
new line name=in$name points="$xx $yy $stx $sty"
fi
gra::draw
#ペナントを描く
int:n:@=`iexpr "$ff/50"`
int:i:@=1
while [ ${int:i:@} -le ${int:n:@} ]
do
stx=`get iarray:bx -field get=${int:i:@}`
sty=`get iarray:by -field get=${int:i:@}`
etx=`get iarray:bx -field get=${int:i:@}-1`
ety=`get iarray:by -field get=${int:i:@}-1`
new polygon points="$stx+$cx $sty+$cy $stx $sty $etx $ety $stx+$cx $sty+$cy" fill="even_odd_rule"
int:i:@=${int:i:@}+1
done
gra::draw
#
#長い矢羽
int:m:@="($ff-${int:n:@}*50)/10"
if [ ${int:n:@} -gt 0 ]
then
int:n:@=${int:n:@}+1
fi
int:i:@=1
while [ ${int:i:@} -le ${int:m:@} ]
do
int:j:@=${int:i:@}+${int:n:@}-1
stx=`get iarray:bx -field get=${int:j:@}`
sty=`get iarray:by -field get=${int:j:@}`
new line points="$stx $sty $stx+$cx $sty+$cy"
int:i:@=${int:i:@}+1
done
gra::draw
#短い矢羽
int:i:@=${int:n:@}+${int:m:@}
if [ ${int:i:@} -eq 0 ]
then
int:i:@=2
fi
temp=`iexpr "$ff-int($ff/10)*10"`
if [ $temp -ge 5 ]
then
stx=`get iarray:bx -field get=${int:i:@}`
sty=`get iarray:by -field get=${int:i:@}`
new line points="$stx $sty $stx+$cx/2 $sty+$cy/2"
fi
gra::draw
done
file:0:closedata
gra::clear
gra::draw
ddが0(風が吹いていない)の時があるので、
dd=`get file:3 -field column:"${file:3:line} 4"`
の下に
if [ $dd -ne 0 ]
then
と挿入し、最後の done の前に fiと入れると
これまで動いていたのに
line points illegal type object argument `4100 22000 0:4100.....`というメッセージがでてしまいます。
どこが悪いのでしょう。
こんにちは。
> pstoedit用のパッチもお作りになられたのですね。
こちらは伊東さんの有益なご助言もあって、
それなりに使えるものになってきていると思います。
さらなる改善も、何か気が付けば、ぼちぼちしていきたいと思っています。
> Download のページの「Ngraph関連ソフト」
> と Link のページにリンク致しました。もし何か問題がありま
> したらご連絡下さい。
大変光栄です。
> GPLでパッチを採用する場合の事とか、具体的にはあまり考えて
> いませんでしたので、ちょっと考えてみます。
> #バイナリ配布の時にパッチを当てて、パッチを当てた事を
> #明記すれば良いのかしら?
今回のやつは、本当に勉強がてら作った超簡単なものなので、
とりたててどうこういうほどのものではないものですし、
「バージョンアップのたびに自作パッチを当てるのは面倒だし、
あったら他の人も便利だろうな」くらいの気持ちです。
パッチのまとめ方は、いろいろなフリーウエアのプロジェクトで、いろいろなやり方をしていると思います。
Ngraphの場合は、X11の下のソースは問題がややこしくないのですが、
srcの下のソースへ手を加えようとした場合、
シェアウエアのWindows版との兼ね合いがどうなるのか少し心配です。
unix/linuxとWindowsのマルチプラットフォームがNgraphの大きな利点の一つだと思いますし。
「GPLなX11版への改良や機能追加は有償のWindows版に反映されない」ような事態は望ましくないと思いますが、このあたりはどうなのでしょう。
以前と同様、やはり石坂さんにお願いして改良して頂く形になるのでしょうか?
余談ですが、
現にいくつか機能追加の案はありまして、
今、ちょっと試しに
数式変換の関数のCOLORをHSBで指定できるようにするのをやってみていまして、
demo1.ngpのようなものがカラフルになって、便利そうです。
まだ他人に見せられるものになっていませんが。
ではでは。
yamakanさん、こんばんは。
> などと、こちらもおかしくなってしまいます。これは、不具合でしょうか。
object darray とすると
get int ( int )
add void ( int )
となっていますが、これは
get double ( int )
add void ( double )
となっていなければいけなかったですね。ですので、darray
(と sarrayも) の get と add は不具合があります。
おそらく syntax error for math とは関係なくて上記の get
と add のバグでおかしくなっているものと思います。
次期バージョンで修正致します。
isizakaさんこんばんわ
> 従って
>
> A=`get iarray:a -field get=${int:n:@}`
どうもありがとうございました。上の式ではうまくいきました。
ところが、iarrayをdarrayにするとうまくいきません。
うまくいかないどころか、同時に新しく作った intまで変になってしまいます。
状況はこうです。
echo ${darray:bx:@}
>2.2000e+03 2.5900e+03 ..
echo ${darray:bx:num}
>8
で、要素数が8個の配列があります。あるとき、
syntax error for math
が出た後に、再び
echo ${darray:bx:num}とやると
>888
となります。さらに
echo ${darray.bx:@}
> 2.2000e+03 2.5900e+03 ..(要素8個分は正常に出力されるが、続けて)2.2000e+03 0.0000e+03 ..(と8個分変な値が、2回出力されます)
おまけに、
echo ${int:n:@}
>00000
などと、こちらもおかしくなってしまいます。これは、不具合でしょうか。
もう一つ、
A=`get iarray:a -field get=${int:n:@}`コマンドですが
配列が整数配列の時は、求める値が正常に得られました。
ところが、上の実数配列darray:bxだと、Aの値が−1のように
期待した値が得られません。これは、
darray:bx:get:0とした場合でも、一緒の結果となってしまいます。
あと一歩なんですが、教えて下さい。
yamakanさん、こんばんは。
> でiarrayの第3要素、つまり「2」を変数nを使って取り出したいのです。 そこで、
${} は変数置換なのですが、ネストしては使えません。この
場合には sh のコマンド置換機能を使います。
`command` は command を実行して、`command`自体を command
の出力で置換します。オブジェクトの関数の結果を取り出すコ
マンドは get です。
get iarray:a get=$n
あるいは
get iarray:a get=${int:n:@}
とすると
get:1
が出力されると思います。get: が頭に付くのは余計なので
get iarray:a -field get=${int:n:@}
とすると 1 だけが出力されます。
従って
A=`get iarray:a -field get=${int:n:@}`
とすると A に 1 がセットされます。
> 初心者にとっては、Ngraphシェルはなかなか手強いです。よろしくお願いします。
sh はコマンドインタープリターのくせに(?)、非常に強力です。
ただ、コマンド置換機能、変数置換機能、eval の単純な機能の
組み合わせで色々な事ができるようになっているので、結構癖
があります。逆にそれで sh のスクリプトに魅せられた方も多
いようです。
eval は説明していませんが、
A=DIR
として
eval $A
とすると DIR コマンドを実行するのと同じ事になります。
isizakaさん、問題は半分だけ解決しました。有難うございます。
説明もとてもよくわかります。
ところで、半分残ってしまった問題点はこうです。
new iarray name=a @="5 4 3 2 1"
new int name=n @=4
n=4
でiarrayの第3要素、つまり「2」を変数nを使って取り出したいのです。 そこで、
echo "${iarray:a:get "${int:n:@}" }"
とすると「 }」が返ってきます。
echo "${iarray:a:get ${int:n:@} }
だと、何も返ってきません。
その他にも環境変数「n」を使って、
echo ${iarray:a:get $n}
echo ${iarray:a:get "$n" }
echo ${iarray:a:get `iexpr $n` }
echo "${iarray:a:get `iexpr $n` }"
と、いろいろ試したのですが上手くいきません。
初心者にとっては、Ngraphシェルはなかなか手強いです。よろしくお願いします。
tanakaさん、こんばんは。
> > Ngraph 6.3.16 for X11用に
> Ngraphのfit結果の値を「クリップボードに保存する」ボタンを追加する簡単なパッチを作りました。
どうもありがとうございます。pstoedit用のパッチもお作りに
なられたのですね。Download のページの「Ngraph関連ソフト」
と Link のページにリンク致しました。もし何か問題がありま
したらご連絡下さい。
> > #本家でも付けてもらえないかなー
GPLでパッチを採用する場合の事とか、具体的にはあまり考えて
いませんでしたので、ちょっと考えてみます。
#バイナリ配布の時にパッチを当てて、パッチを当てた事を
#明記すれば良いのかしら?
いつもお世話になっております。
Ngraph 6.3.16 for X11用に
Ngraphのfit結果の値を「クリップボードに保存する」ボタンを追加する簡単なパッチを作りました。
(同様の機能はWindows版にはあるようですが。)
保存した結果は、X標準のアプリケーションxclipboardや
emacsのM-x clipboard-yankコマンドや
geditなどで取り出せます。
ご興味のある方はこちらへどうぞおいで下さい。
http://homepage3.nifty.com/ttk/comp/ngraph/
#本家でも付けてもらえないかなー
Dear Ali AL_Dawji,
Probably, you selected [Preference]-[Save as default(graph)]
menue and happened to save the graph as a default.
Ngraph usually creats a simple frame-graph at beginning.
So, in order to fix the problem,
(1) Select [Graph]-[New graph]-[Frame graph] menu, and
create a (blank) frame-graph.
(2) Select [Preference]-[Save as default (graph)] menue,
and save the blank frame-graph as a default.
Since the defalut graph is saved into the file of "_Ngraph.ngp" in the installed directory. So, it is also
OK to overwrite the file by the original _Ngraph.ngp in
the distributed archive.
yamakanさん、こんばんは。
下の説明で言い忘れましたが、オブジェクトには名前が付けら
れます。iarray の例では new iarray name:a で a と言う名前
を付けて ${iarray:a:@} の様に名前でオブジェクトを指定して
います。
> まず、一つめ
> ff=65
> ff="$ff+2"
この時点で ff は "65+2" になっています。
> n="int($ff/50)"
この時点で n は "int(65+2/50)" になっていますので、
iexpr $n は 65 です。つまり環境変数は何時も文字列
として扱うからです。
new int name:ff
int:ff:@=65
int:ff:@=${int:ff:@}+2
int:ff:@=${int:ff:@}/50
とすれば ${int:ff:@} は 1 になります。
> for i in (1からn)
> then
> 処理
> done
> としたいのですが、括弧の部分の書き方が分かりません。
new int name:a @:0
while [ ${int:a:@} -lt $n ]
do
処理
${int:a:@}=${int:a:@}+1
done
とするのが最も簡単な方法です。
> > もうひとつ、MOD関数はないのですよね?
int:a:@=式
の式は Ngraph の数式変換機能の式と同じものが使えます。
剰余は \ ですが実数の剰余です。
int:a:@=25\\3
とすると(\\となっているのは \ がシェルでは特殊文字の為)
${int::@} は 1 になります。
yamakanさん、こんばんは。
> その流れなんですが、ngraphでは配列を扱うことができるのでしょうか。
Ngraphシェルは UNIX の sh 互換になっています。UNIX の sh
とは Windows/DOS の command.com の様なもので、要するにコ
マンドインタープリターです。また、sh の変数は環境変数でし
て普通のプログラム言語の変数とは異なります。配列もありま
せん。
しかし、それでは不便な事もあろうかと Ngraphシェルでは
整数型、実数型、文字列型と、それぞれの配列型のオブジェクト
を実装してあります。text とか line とか、描画に使ったオ
ブジェクトと扱いは同じですが、描画とは関係なく、整数など
の値だけを保持するオブジェクトです。ですから new で作成
して del で削除します。また、値を格納しているフィールド
名は@です。また、描画オブジェクトでもそうでしたが、代入
先が整数や実数型の場合、自動的に数式の評価が行われます。
つまり、環境変数の場合は
a=1+2
とした場合、環境変数 a に "1+2" の文字がセットされるので
$a は "1+2" になりますが、整数型のオブジェクトを使うと
new int
int::@=1+2
とした場合 ${int::@} は 3 になります。
整数型配列は iarray です。
new iarray name:a
iarray:a:@="1 2"
とすると、第0要素が 0、第1要素が 2 の配列になります。
iarrayオブジェクトには配列要素操作用の関数が用意されて
いて、
iarray::num 配列の要素の数
iarray::put 0 3 第0要素に 3 をセット
iarray::get 0 第0要素を取得
iarray::add 3 値が3の要素を最後に追加
iarray::ins 0 2 現在の第0要素の前に 2 を挿入
iarray::del 0 第0要素を削除
です。従って、例えば第1要素の値に1を足した物を第0要素に代入
するには
iarray:a:put 0 ${iarray:a:get:1}+1
となります。分かり難いですね^^;)
Dear Sir,
I am a new user of Ngraph, I have a question or let痴 say a problem, before this problem when I was access to ngraph always I get a blank page as usuall, but by mistaken I clicked on some words in the menu bare, so now when I access to Ngraph I get a graph which I saved it before the problem occurs.
I could not solve this problem.
Any help is welcomed.
はー。いろいろ質問して申し訳ありません。一緒に質問すればよかったです。
まず、一つめ
ff=65
ff="$ff+2"
iexpr $ff は 67になります。
次に
n="int($ff/50)"
iexpr $n は67になります。
そこで、
n="int(($ff)/50)" とすると
iexpr $n は 1になります。こうしないと正しい値(1が欲しい)は求められないのでしょうか。
更に、今求めた変数nを使って、1からnまでのレンジでforループを使うのに
for i in (1からn)
then
処理
done
としたいのですが、括弧の部分の書き方が分かりません。
もうひとつ、MOD関数はないのですよね?
これは、なくてもあまり困りませんが、あると便利ですので。
「配列」の問題に加えて、これが解決すれば近い将来「矢羽を書く」スクリプトが公開できると思います。
よろしくお願いします。
矢羽の塗りつぶしではお世話になりました。
その流れなんですが、ngraphでは配列を扱うことができるのでしょうか。
ngraphシェルで以下のように実行すると、変数bを配列的に使用しようと思い、次のように入力したら起こられました。
a=0
n=1
b$n="$a+1"
"を ` にしてもだめです。
またb$n=`iexpr $a+1`もだめです。
単にb=$a+1はokで、iexpr $bとすると、1と値が帰ってきます。
この掲示板を最初から流し読みしたのですが、回答を得られません。
よろしくお願いします。
こんばんは
> Ngraph本体のバージョンと外部ドライバ gra2ps.exe の
> バージョンをご確認下さい。本体は最新バージョンなの
> に gra2ps.exe が一つ前のバージョンですと、ご指摘の
> 症状になる可能性があります。
grap2ps.exeを最新バージョンにしたところうまくうごきました!
ありがとうございます!!
だっちさん、こんばんは。
> Win98で使っているのですが,EPSFをもちいてEPSに出力
> しようとするとフォントが変換されずグラフのみの画像に
> なってしまいます.何か原因でおもいつくことがあったら
Ngraph本体のバージョンと外部ドライバ gra2ps.exe の
バージョンをご確認下さい。本体は最新バージョンなの
に gra2ps.exe が一つ前のバージョンですと、ご指摘の
症状になる可能性があります。
もし前にも質問があったらすいません.
Win98で使っているのですが,EPSFをもちいてEPSに出力
しようとするとフォントが変換されずグラフのみの画像に
なってしまいます.何か原因でおもいつくことがあったら
お聞かせください.
石坂さん こんばんは
ご助言ありがとうございました。
> 「半角で入力したい」のでしょうか? それとも「半角(欧文)
> フォントで出力したい」のでしょうか?
>
> 後者でしたらHelveticaやTimesのフォントで \xB0C です。
後者の方でした。早速やってみたところうまくいきました。
本当にありがとうございました。
初めて投稿した英語論文がアクセプトされました。
そのグラフはすべてNgraphで作成させていただきました。
(今回のも編集者に出す規定に欧文フォントを使うようにと書いてあったので…)
これからも愛用させていただきます。
yamakanさん、こんばんは。
> フィールドの指定ですが、
> polygon::R=0 G=0
> のように複数のフィールドの指定を一遍にはできないのでしょうか。
polygon::R=0 G=0
は sh の文法上では
polygon::R=0
G=0
と同じですので、シェル変数(環境変数)G に 0 が代入され
ます。一度にセットするには
put polygon R:0 G:0
として下さい。R=0 でなくて R:0 となっているのは、上記の
様なシェル変数への代入と区別する為です。
sugitaさん、こんばんは。
> > 本題ですが、いつもは全角で「℃」と入力をしているのですが、
> これを半角で入力したいのです。
「半角で入力したい」のでしょうか? それとも「半角(欧文)
フォントで出力したい」のでしょうか?
後者でしたらHelveticaやTimesのフォントで \xB0C です。前者です
と、日本語のコード入力はフロントエンドプロセッサ(FEP) の機能
ですので Ngraph 自体は持っていないです。
isizakaさんありがとうございました。うまくいきました。
> 塗りつぶしの有る多角形は polygon オブジェクトです。
>
> Ngraph のシェルで object polygon とコマンドを打つと polygon
> オブジェクトのフィールドのリストが出ます。この中で主な
> ものを説明しますと…
>
> R →R色
> G →G色
> B →B色
> points →座標 "0 0 1000 1000 2000 2000" とすると (0,0)-(1000,1000)-(2000,2000)の多角形です。
> fill →塗りつぶしの方法。通常は even_odd_rule です。
> width →線幅
> style →点線などの指定 "100 100" の様に指定
> join → 線の結合方法
> miter_limit →線の結合時のマイターリミット
>
> です。
フィールドの指定ですが、
polygon::R=0 G=0
のように複数のフィールドの指定を一遍にはできないのでしょうか。一つ目のフィールドの指定しか、反映されないようなのですが。
>
> > > もう一つはお願いです。Ngraphパワーユーザーではないので、オブジェクトのフィールドとか、関数のマニュアルは無いのでしょうか。どなたか、よく使いそうなオブジェクトについてだけでも公開されているページがありましたら、教えていただけませんでしょうか。
> まったく仰る通りで、関数などのドキュメントが出来ていま
> せん。急いで作らないといけませんね。申し訳ありません。
>
この掲示板や他の方のHPを見ながら少しずつは理解できてきていますが、まだ良く理解できない部分が沢山あります。気長にお待ちしています。よろしくお願いします。
いつもお世話になっています。
毎回基本的な質問で恐縮ですが、お許し下さい。
使っているのはVineLinux 2.5上でのNgraph 6.03.16
(石坂様のH.P.からDLしたバイナリ)です。
本題ですが、いつもは全角で「℃」と入力をしているのですが、
これを半角で入力したいのです。
マニュアルの「テキスト描画の制御文字」という項目で
「文字を16進コードで指定」する方法がでておりますが、これをつかえばよろしいのでしょうか?
試してみたのですが、どうもうまくいきませんでした(ASCII文字はでてくるのですが…)。
どのようにすればよいかお教えいただければ幸いです。
isizakaさま、早速丁寧な解説有難うございました。
> 数式変換機能に MARKSIZE() という関数が用意されています。
という事で、なんてすばらしい!と感動しました。
どうもありがとうございました。
いろいろ勉強してみようと思います。又よろしくお願いします。
くろさん、こんばんは。
> バブルチャートの作成は可能ですか?データファイルから記号の大きさを読み込みたいと思っています。
数式変換機能に MARKSIZE() という関数が用意されています。
例えば
=========
X1 Y1 SIZE1
X1 Y1 SIZE2
…
=========
と言うデータファイルが有ったとします。第一カラムがX座標、
第二カラムがY座標、第三カラムがマークのサイズ(0.01mm単位)
です。この場合、Yの変換数式に MARKSIZE(%03)=%02 と入れます。
簡単にこの意味を説明しますと、%03 は第三カラムのデータ値
です。MARKSIZE(%03*10) なども使えます。MARKSIZE(%03)だけ
ですとY座標まで %03 になってしまいますので、式の区
切り = を入れ、式の最終値は %02 で第二カラムのデータになる
様にしています。
こんばんは。
> 原因についてはそれまでのの個々積み重ねもあると思いますが、最後はbyte alignの問題のようでした。
そうですか。以前確か HP でも byte align で問題になって
いました。ん〜、どうしよう。-DNOBYTEALIGN とでもしたら
byte align で無くても良いようにする等、考えてみたいと
思います。
ishizakaさん、tanakaさん、ご助言ありがとうございました。
無事起動するようになりました。
原因についてはそれまでのの個々積み重ねもあると思いますが、最後はbyte alignの問題のようでした。
src/object.cをご指示通り追記して再度makeしたところ無事起動しました。
本当にありがとうございました。
ユーザー予備軍です。一つ質問させてください。
バブルチャートの作成は可能ですか?データファイルから記号の大きさを読み込みたいと思っています。
よろしくご教示ください。
[1] Solaris + gcc での Makefile の設定の一例です。
これで作れるはずです。makeはgnu makeです。
---
CC = gcc
CCOPTION = -O2 -g
MAKE = /usr/local/bin/make
AR = /usr/ccs/bin/ar
RANLIB = /usr/ccs/bin/ranlib
STRIP = /usr/ccs/bin/strip
DEFS = -DJAPANESE
PLATFORM = '"for X11 [Solaris 8]"'
X11INCLUDE =
STATICLINK =
X11LIB = -L/usr/dt/lib -lm -lXm -lXt -lX11
---
[2] Motif on Solaris8
Solaris8に入っている
/usr/dt/lib/libXm.so.4
というのが、Motif Version 2.1.0
のようです。
環境変数 LD_LIBRARY_PATH に /usr/dt/lib が含まれていれば、
見つからないと怒られることはないと思います。
[3] byte alignの問題ですが、
そのままだと Solaris+gcc では
segmentation faultで落ちてしまいます。
その昔の私の環境では、
gccのオプション -munaligned-doubles を付ければ
この問題が回避できていたのですが、
最近の私の環境ではうまくいきません。
gccのバージョンが変わったせいか、
Solarisのバージョンが変わったせいかは不明です。
以前このBBSで拝見した下記のような、
offsetの値を8で割れるようにずらす方法で、
取り敢えず動いています。
これで問題なしといいきれないと、
石坂さんよりコメントを戴いた記憶があります。
しかし、取り敢えず一年以上使っていて、
この問題の不具合はなかったように思います。
今はSun ccが使える環境になったので、
gccで作った方は使っていません。
以上、ご参考になれば幸いです。
*** src/object.c_org Sun Jul 7 00:47:16 2002
--- src/object.c Wed Aug 28 11:31:51 2002
***************
*** 867,872 ****
--- 867,873 ----
objnew->doneproc=doneproc;
if (parent==NULL) offset=0;
else offset=parent->size;
+ if (offset%8 != 0) offset=offset+(8-offset%8);
for (i=0;i<tblnum;i++) {
table[i].offset=offset;
switch (table[i].type) {
***************
*** 886,891 ****
--- 887,893 ----
default:
offset+=sizeof(void *);
}
+ if (offset%8 != 0) offset=offset+(8-offset%8);
if (table[i].attrib & NEXEC) table[i].attrib&=~NWRITE;
}
objnew->size=offset;
sugiharaさん、こんばんは。
> > あれ(@_@)最初に私が見たものとは内容が変わってしまっているようですね。
後から Solaris の CDE が Motif 2.1 ベースと確信できました
ので、B, C は消してしまいました。どうもすみません。
> B同様バスエラーでコアダンプしてしまいます。
まずコンパイルは byte-align になっている事を確認して下
さい。[88] で tanaka さんが
>[3] Makefileで、gccを使う場合-munaligned-doublesが必要。
と書かれています。ただ、X11 無しで動いているとなると、こ
れが問題となっている可能性は低いような気がします。
また、日本語環境の問題で落ちている可能性も考えられなくも
ありません。 ./ja/Ngraph を ./Ngraph で上書きし
XMODIFIRE を unsetenv して英語環境で動く事を試す方法が考
えられます。
私が言えるのはこれぐらいです。どうもすみません。
ishizakaさん。レスありがとうございます。
あれ(@_@)最初に私が見たものとは内容が変わってしまっているようですね。
最初に見たときはA,B,Cの3パターンの方法が記してあったのですが・・・。
とりあえずA,B,Cの3パターンの結果をご報告させていただきます。
C)libDtWidget.aが見つからなかったので試せませんでした。
B)環境変数LD_LIBRARY_PATHにlibDtWidget.so.2のパスを指定してコンパイルしました。warningは以前と変わらず同じものが出ていたのですが実行するとバスエラーでコアダンプしてしまいます。
A)以下のご指示同様Makefile で DEFS は -DJAPANESE のみ(MOTIF12 と CDE を外す)にし、X11INCLUDE は何も指定せず、X11LIB から -lDtWidget を外してコンパイルしました。するとwarning等一切出ず、綺麗にmakeできました。しかし、実行するとB同様バスエラーでコアダンプしてしまいます。
ちなみにXを使えない環境(TeraTerm等リモート接続)で実行すると以下のようにコマンドラインは正常に動いているように見えます。
Cannot open display.
Ngraph$
ただ、未だNgraphを使ったことが無いので使い方がわからないだけかもしれません。
もう少し使い方を含め勉強いたします。ご助言ありがとうございました。
もし何かお気づきの点がありましたらまた助言いただけると幸いです。
よろしくお願いいたします。
> sugiharaさん、こんばんは。
> > 私は Solaris は良く分かりませんので、どなたかお分かりの
> 方がいらっしゃいましたら、よろしくお願いします。
> > > ただ、違うかも知れませんが、
> > > > ld.so.1: /usr/local/lib/Ngraph/ngraph: 重大なエラー: libDtWidget.so.2: open に失敗しました: ファイルもディレクトリもありません。
> > これはダイナミックリンクライブラリ libDTWidget.so.2 が
> 見つからないと言っている様に見えます。また、[333] の
> tanaka さんのメッセージを見ますと
> > >Solaris8 + Sun cc + Motif 2.1.0 でmakeしたところ、
> >Ngraph-6.3.14, Ngraph-6.3.16ともに
> >ソースに修正を何ら手を加えることなく正常に動作しました。
> > との事です。DtWidget は Motif 1.2 (CDE)でコンボボックスが無
> かった為に提供されていたものです。もし Solaris8にMotif 2.1
> 付いているのでしたら 2.1.0 にはコンボボックスがデフォルトで
> 入っていますので DtWidget は必要ありません。
> > http://wwws.sun.com/software/solaris/cde/datasheet.html
> > を見ても Solaris 8 の CDE は Motif 2.1 がベースの様です。
> ですので、Makefile で DEFS は -DJAPANESE のみ(MOTIF12
> と CDE を外す)にし、X11INCLUDE は何も指定せず、X11LIB か
> ら -lDtWidget を外してコンパイルしてみて下さい。
>
sugiharaさん、こんばんは。
私は Solaris は良く分かりませんので、どなたかお分かりの
方がいらっしゃいましたら、よろしくお願いします。
ただ、違うかも知れませんが、
> > ld.so.1: /usr/local/lib/Ngraph/ngraph: 重大なエラー: libDtWidget.so.2: open に失敗しました: ファイルもディレクトリもありません。
これはダイナミックリンクライブラリ libDTWidget.so.2 が
見つからないと言っている様に見えます。また、[333] の
tanaka さんのメッセージを見ますと
>Solaris8 + Sun cc + Motif 2.1.0 でmakeしたところ、
>Ngraph-6.3.14, Ngraph-6.3.16ともに
>ソースに修正を何ら手を加えることなく正常に動作しました。
との事です。DtWidget は Motif 1.2 (CDE)でコンボボックスが無
かった為に提供されていたものです。もし Solaris8にMotif 2.1
付いているのでしたら 2.1.0 にはコンボボックスがデフォルトで
入っていますので DtWidget は必要ありません。
http://wwws.sun.com/software/solaris/cde/datasheet.html
を見ても Solaris 8 の CDE は Motif 2.1 がベースの様です。
ですので、Makefile で DEFS は -DJAPANESE のみ(MOTIF12
と CDE を外す)にし、X11INCLUDE は何も指定せず、X11LIB か
ら -lDtWidget を外してコンパイルしてみて下さい。
初めまして。
現在Solaris8でNgraphを利用しようとして苦戦しています。
ダウンロードして展開し、Makefileを書き換えてmakeを実行、多少warningが出ますがうまくいっているように見えます。
しかし、いざ起動しようとすると以下メッセージが出て落ちてしまいます。
ld.so.1: /usr/local/lib/Ngraph/ngraph: 重大なエラー: libDtWidget.so.2: open に失敗しました: ファイルもディレクトリもありません。
強制終了
環境はSolaris8 + gccです。
Motifについては、Solaris8には独自のMotifが入っているらしいという情報を得、特に何もしていません。(多分これがいけないと思うのですがMotif自体良くわからないのでどうして良いかわかりません)
どなたかご助言いただけないでしょうか。
よろしくお願いします。
yamakan さん、こんばんは。
> > 今回初めて、BBSに登場します。以前は直接メールを差し上げて失礼しました。
いえ、メールでも構わないです。ただ、どちらかと言うとBBSの
方が重複した質問が減るので嬉しいです。それに、私自身が気
づかない解決方法が別の方によって示される事もありますし。
> その後、スクリプトの勉強をしてある程度形にはなったのですが、図形の塗りつぶしができません。
line オブジェクトを使われたとの事ですので、図形オブジェク
トをスクリプトで自動生成しているものとして話を進めます。
塗りつぶしの有る多角形は polygon オブジェクトです。
Ngraph のシェルで object polygon とコマンドを打つと polygon
オブジェクトのフィールドのリストが出ます。この中で主な
ものを説明しますと…
R →R色
G →G色
B →B色
points →座標 "0 0 1000 1000 2000 2000" とすると (0,0)-(1000,1000)-(2000,2000)の多角形です。
fill →塗りつぶしの方法。通常は even_odd_rule です。
width →線幅
style →点線などの指定 "100 100" の様に指定
join → 線の結合方法
miter_limit →線の結合時のマイターリミット
です。
> > もう一つはお願いです。Ngraphパワーユーザーではないので、オブジェクトのフィールドとか、関数のマニュアルは無いのでしょうか。どなたか、よく使いそうなオブジェクトについてだけでも公開されているページがありましたら、教えていただけませんでしょうか。
まったく仰る通りで、関数などのドキュメントが出来ていま
せん。急いで作らないといけませんね。申し訳ありません。
失礼しました。メッセージに半角文字が入ってしまったため、文字化けしているかもしれないので、再送します。
今回初めて、BBSに登場します。以前は直接メールを差し上げて失礼しました。
以前に矢羽を書く、アドインはありませんかとお尋ねしたものです。気象関係のグラフを書くときに、新聞の天気図などでよく見かける矢羽(”やばね”と読みます)は必須のアイテムです。
その後、スクリプトの勉強をしてある程度形にはなったのですが、図形の塗りつぶしができません。
具体的には、風が吹いてくる方向に線を引き(これは、lineオブジェクトで何とか形になりました)、風の強さに応じて短い羽根を右回りに60度の角度でつけます。ところが、風の強い時には羽根の代わりに三角形の旗をつけ、その中を塗りつぶします。この塗りつぶしがどうしてよいかわかりません。教えて下さい。
もう一つはお願いです。Ngraphパワーユーザーではないので、オブジェクトのフィールドとか、関数のマニュアルは無いのでしょうか。どなたか、よく使いそうなオブジェクトについてだけでも公開されているページがありましたら、教えていただけませんでしょうか。
よろしくお願いします。
isizakaさん、早速のお返事ありがとうございます。
> こちらではテストできないのですが、その様に直し
> ておきます。
新しいバージョンが出たらこちらでテストいたしますので、
そのときまでのんびりお待ちしております。
では。
tanakaさん、こんばんは。
> > [1]
> 変換数式のComboBoxのリストの中身が6.3.14以前と比べて
> 挙動不審のように思えます。
以前、ComboBox のリストの項目を変更させるとリストが伸びて
いってしまうと言う指摘(Motifのバグ)があり、通常のComboBox
では初めの一回だけしか項目設定しないようにしたのですが、
リストが変化するのは「軸」だけかと「数式」の方を忘れて
いました。
> Legend windowやMerge windowなどを開いたり閉じたりすると、
> Windowを開いた2回目以降では異様に巨大になってしまう問題が ありました。
> 変なことを言っているかも知れませんので、
> ご検討いただければと思います。
なるほど。あり得ますね。XmNwidth は unsigned int か何かな
のですね。こちらではテストできないのですが、その様に直し
ておきます。ご指摘、どうもありがとうございます。
環境依存のバグ報告です。
Ngraph-6.3.16 for X11 (もしくはそれ以前のバージョン)と
Solaris8 for Sparcの組合わせで
Legend windowやMerge windowなどを開いたり閉じたりすると、
Windowを開いた2回目以降では異様に巨大になってしまう問題がありました。
以前から変だとは思っていたのですが、
今回デバッガーを掛けてその謎が解けました。
下記のような感じで直すと直るようです。
他にも何カ所かありますが、同様です。
(Linuxでは問題ないようですが)
変なことを言っているかも知れませんので、
ご検討いただければと思います。
*** x11/x11lgnd.c_org Sun Jul 7 00:47:17 2002
--- x11/x11lgnd.c Thu Aug 15 16:01:15 2002
***************
*** 2890,2904 ****
{
struct LegendWin *d;
Position x,y,x0,y0;
d=&(NgraphApp.LegendWin);
if (d->Win!=NULL) {
! XtVaGetValues(d->Win,XmNx,&x,XmNy,&y,
! XmNwidth,&(menulocal.legendwidth),
! XmNheight,&(menulocal.legendheight),NULL);
XtTranslateCoords(TopLevel,0,0,&x0,&y0);
menulocal.legendx=x-x0;
menulocal.legendy=y-y0;
XtDestroyWidget(d->Win);
d->Win=NULL;
d->text=NULL;
--- 2890,2907 ----
{
struct LegendWin *d;
Position x,y,x0,y0;
+ Dimension w0,h0;
d=&(NgraphApp.LegendWin);
if (d->Win!=NULL) {
! XtVaGetValues(d->Win,XtNx,&x,XtNy,&y,
! XtNwidth,&w0,
! XtNheight,&h0,NULL);
XtTranslateCoords(TopLevel,0,0,&x0,&y0);
menulocal.legendx=x-x0;
menulocal.legendy=y-y0;
+ menulocal.legendwidth=w0;
+ menulocal.legendheight=h0;
XtDestroyWidget(d->Win);
d->Win=NULL;
d->text=NULL;
Ngraph-6.3.16 for X11 リリース有難うございます。
早速便利に利用しています。
ご報告二点です。
[1]
変換数式のComboBoxのリストの中身が6.3.14以前と比べて
挙動不審のように思えます。
具体的には、
Data Window -> 変換数式… -> 'Data Math' windowの
(X)変換数式のところを
'X+1'としてOK, 'X+2'としてOK, 'X+3'としてOK, ...
と繰り返すと、以前は順調にComboBoxのリストの中身が増えていきましたが、
6.3.16では、'X+1'のみのままになります。
'Math' window -> 'Input Math' window の方は
順調に増えています。
Ngraph-6.3.16-src.tar.gzをSolaris8上でmakeしたものと
Ngraph-6.3.16-linux_glibc2..tar.gzをVine Linux2.5上で使った場合とで
同様でした。
リソースファイル~/Ngraphも新しいものに変更しています。
何か分かったら教えてください。
どうかよろしくお願いします。
[2]
以前、「Solarisで使用したところ、ComboBox周りで固まりやすい」と
述べましたが、
Solaris8 + Sun cc + Motif 2.1.0 でmakeしたところ、
Ngraph-6.3.14, Ngraph-6.3.16ともに
ソースに修正を何ら手を加えることなく正常に動作しました。
以前makeしたとき変だったのは、どうも、
Solaris2.6で作ったものを安直にコピーして使っていた所為
だったようです。
失礼しました。
kannoさん、こんばんは。
試した結果を教えて下さり、どうもありがとうございます。
#ドキュメントに書いてないと自分でも忘れちゃうんですよ汗)。
と言う事でヘルプも修正致します。
isizakaさん、レス有り難うございます。
> ESCキーを押すか、メニューの下のSTOPボタンを押すかで中断
> できるようにしたと記憶しています。
その通りでした。描画中は、メニューボタンも反応しないと思いこんでいまして、stopボタンに(Escにも)気づきませんでした。すいません。
フィット機能はよく利用させていただいているのですが、上手く収束しないことも多くて、困っていたところでした。これで作業が進めやすくなります。ありがとうございました。
sugitaさん、こんにちは。
> (1) 最初、OpenMotif 2.2.2をインストールしたのですが、
> うまくコンパイルできませんでした。(互換性がない?)
Open Motif の 2.2 だとライブラリのバージョンが違います
よね?(libXm.so.? ← ここの数字が違う。正確な値は忘れ
ました。)ですので、互換性が無いと言うより動かないです。
”Dynamic link library libXm.so.x が見つからない”と言う
様なエラーになる筈です。
それと http://www.opengroup.org/openmotif/ を見ると
10-Jun-2002 Open Motif 2.1.31 almost ready to go.
29-Jan-2002 Open Motif 2.2.0 Released
となっていて 2.2 を出した後でも 2.1 の新バージョンが出て
いますから、互換性は無いか、あるいは 2.2 は出たばかりで
安定していないかの様に思えます。
> ソースをとってきてそもままmakeしたのですが、何かいじらないと駄目なのでしょうか?
私はただ単に 2.1 の rpm をダウンロードしてきて rpm -i
で一発インストールしただけで問題なく動いていますよ!?
もちろん、ソース配布しているのはバイナリ配布と寸分違わず、
です。
石坂さん こんにちは
ご助言ありがとうございました。
OpenMotif 2.1.30を使い、H.P.上で提供されているバイナリを
使ってみたところ、確かに入力時および表示ともに問題なく
使用することができました。
日本語環境の設定は、Vine2.5のデフォルトの設定のまま使っていて以下の通りです。
setenv XMODIFIERS @im=kinput2
setenv LANG ja_JP.eucJP
Lesstiffを使っていた時に比べて正常に動作しているようです
(<---うまく表現できないのですが、なんか変でした)。
結果的に問題は解決できたのでいいのですが、
なんとなくひっかかることとして以下のようなことがありまし
た。
(1) 最初、OpenMotif 2.2.2をインストールしたのですが、
うまくコンパイルできませんでした。(互換性がない?)
(2) また、OpenMotif 2.1.3の開発キットをインストールして、
コンパイルしたところ、確かにコンパイルでき
日本語表示もできた(以前に作製したファイルが読めた)のですが、
エントリーで日本語入力ができませんでした。
ソースをとってきてそもままmakeしたのですが、何かいじらないと駄目なのでしょうか?
sugitaさん、こんばんは。
> 以前、グラフ上へ画像を導入するという内容でお世話になりました。
いえ、こちらこそ。あまりお役には立てなかったですが(汗)。
> > 何が問題かと申しますと、グラフ上での日本語表示はできるのですがテキストの入力ウィンドウで文字化けしてしまうという点です。
私もつい先日 Vine 2.5 にしましたが、問題なく日本語も入力
できています。日本語入力関係で設定しているのは
setenv XMODIFIERS @im=kinput2
setenv LANGUAGE ja
setenv LANG ja_JP.ujis
ぐらいです。ただ Ngraph は Lesstif ではなくて open motif
で使っています。
それと話は違って、会社の先輩に指摘して頂いたのですが、
Vine 2.5 にすると目盛数字の'-'が軸線と重なってしまう
事があります。Vine 2.5 では XFree86 4.2 になるのですが、
どうやら XFree86の4.2から iso-8859-1 は '-' がマイナス
ではなくてハイフンになってしまった(PostScriptでは '-'
はマイナスです)のが原因のようです。この問題は修正済み
ですので、近い内に新しいバージョンを出します。
kannoさん、こんばんは。
> > フィットを行う際、初期値によっては上手く収束せず、長々
> と計算が続く場合があります。このとき、初期値を調整して
> 再計算したいのですが途中で計算をストップさせる術がわか
> りません。
ESCキーを押すか、メニューの下のSTOPボタンを押すかで中断
できるようにしたと記憶しています。今確認しようかと思った
のですが、上手くループに落ちてしまう例が手持ちにないので
確認はできませんでした(早く収束しすぎてキーを押すタイミ
ングがありませんでした)。もし可能でしたら、試した結果を
お知らせ下さると大変に助かります。
> マニュアルにもその方法はかかれていなかったように思い
はい。すっかり書き忘れてしまったようです(汗)。修正した
いと思います。
こんにちは
以前、グラフ上へ画像を導入するという内容でお世話になりました。
今回はNgraph上でのフォントに関する質問をさせて下さい。
現在
VineLinux 2.5(以下 Vine)上で
Ngraph 6.03.16 (手前のPC上でコンパイル)
を使っております。ライブラリとしてはVineで提供されているLesstif 0.91.0を使用いたしました。
以前本BBSでも話題になりましたが([283]〜[285])、フォント指定の設定をNgraph.iniに施して使っております。
何が問題かと申しますと、グラフ上での日本語表示はできるのですがテキストの入力ウィンドウで文字化けしてしまうという点です。
多分、Xの基本的な知識があれば解決できるのかなぁと思っているのですが...いかがでしょうか?
基本的な質問で恐縮ですが、ご助言いただければ幸いです。
初めまして。
Linux上でNgraphを使用させていただいております。
早速ですが、使用している際に疑問に思ったことがあったの
で質問させてください。
フィットを行う際、初期値によっては上手く収束せず、長々
と計算が続く場合があります。このとき、初期値を調整して
再計算したいのですが途中で計算をストップさせる術がわか
りません。
まだそれほど使い込んでいるわけではないのですが、
マニュアルにもその方法はかかれていなかったように思い
ます。そのような事はできないのでしょうか。
よろしくお願いします。
iwasakiさん、こんにちは.
> 私の所で,最近導入された Windows XP Professional を使って
> やって見ましたが,だめでした.Windows2000 と同じ症状です
試してみました。フレームグラフの枠が無ければ OK、フレー
ムグラフの枠が有るとNGのようですね。しかも「テスト」
だけならOKなのに「テストテストテスト…」と長くしていく
と徐々に切れるようになります。どうやら、ある程度幅が長く
なると切れるようになってしまう様です。
で、色々やって一つ分かったのですが…
Ngraph の場合、用紙からはみ出たグラフィックスはある程度
自前でクリップしています。でも、円などの一部をクリップ
するのは大変なので、画面表示と拡張メタファイル出力の場
合には、用紙のサイズで SelectClipRgn() も実行しています。
これを外してしまうと問題なくコピーできるようになりました。
Windows 2000/XP ではクリップ領域の計算にバグがあるよう
な気がします。
ちなみに、コピーする時に図形の描画領域を明示した場合に
余白が多すぎる問題は、SelectClipRgn() を外しても変わり
ませんでした。Windows 2000/XPの拡張メタファイルには幾つ
か複数のバグが有るようです。
と言う事で、クリップボードへのコピールーチンは
o SelectClipRgn() は(メタファイル/拡張メタファイル共に)一切使わない。
o Windows 9x では図形の描画領域を Ngraph 側で計算する。
o Windows NT/2000/XP ではシステム側に図形の描画領域を
計算させる。
とする事にしようかと思っています。
こんにちは.
> これも週末に探してみます。さっき Windows XP で
> (0,15000) の「テスト」をコピーしたところ問題は無いよう
> でした。Windows XP で直したなら Windows 2000 の SP も
> 出して欲しいですよね。
え,そうなんですか?
私の所で,最近導入された Windows XP Professional を使って
やって見ましたが,だめでした.Windows2000 と同じ症状です.
なぜなんでしょうか,分かりません.
[319] の文章を改めて読み返すと実際にやっていることが
抜けていることに気づいたので,再度,詳細にやったことを
書きます.なお,Windows 2000 で Ngraph のバージョンは
6.03.16b です.
(1) Ngraph を起動
(2) デフォルトのフレームグラフサイズ(X=3500,Y=22000,幅=14000,高さ=14000)が表示される
(3) ツールバーの「T」ボタン押しテキストを X=0, Y=15000, テキスト=テスト で作成
(4) メニューの出力,クリップボードから拡張メタファイル,DPI=576 でクリップボードへコピー
(5) Excel2000 で編集,形式を選択して貼り付け,図(拡張メタファイル)形式で貼り付け
です.
回避策としては,
・メタファイルでコピー
・X = 0 付近に図形を置かない
なので,基本的には上記で対処しようと思います.
iwasakiさん、こんばんは。
そうですか、Windows 2000 のバグですか。
>今,個人使用のプログラムを作成していて,同様のことで
>苦しんでいる状態です.なにか,いいアイデアがあれば
>知りたいです.
いえ、私にはアイデアはありません。iwasakiさんの
> ・NULL_PEN で図形描画領域+マージン分を囲む
で上手く行くのでしたら、その方向で考えて見ます。
> 中村拓男:Delphi Graphic Secrets Konw-how & Libraries
> SOFT BANK Publishing, 3-3 TMetafile, pp. 126-
これも週末に探してみます。さっき Windows XP で
(0,15000) の「テスト」をコピーしたところ問題は無いよう
でした。Windows XP で直したなら Windows 2000 の SP も
出して欲しいですよね。
> つまり、Windows 2000 では、領域を指定すると余白が入りす
> ぎるし、システム側に計算させると切れてしまうと言う事に
> なります。
今,個人使用のプログラムを作成していて,同様のことで
苦しんでいる状態です.なにか,いいアイデアがあれば
知りたいです.
私の場合,あくまで「個人使用」なので以下で逃げれないかと
思っています.もちろん,図形描画領域が妥当に計算されて
いなければいけませんけど.
・Windows 側に領域を計算させる
・NULL_PEN で図形描画領域+マージン分を囲む
・図形を描画
・クリップボードへコピー
以下で,RECT RectFig が図形描画領域+マージンを示すとして
こんな感じで.
// 拡張メタファイルの DC
hDCEmf = CreateEnhMetaFile(NULL, NULL, NULL, NULL);
// NULL_PEN による図形領域の描画
hPen = GetStockObject(NULL_PEN);
hOldPen = SelectObject(hDCEmf, hPen);
MoveToEx(hDCEmf, RectFig.left, RectFig.top, NULL);
LineTo(hDCEmf, RectFig.right, RectFig.top);
LineTo(hDCEmf, RectFig.right, RectFig.bottom);
LineTo(hDCEmf, RectFig.left, RectFig.bottom);
LineTo(hDCEmf, RectFig.left, RectFig.top);
SelectObject(hDCEmf, hOldPen);
DeleteObject(hPen);
// 図形の描画
// 拡張メタファイルのハンドルを得る
// クリップボードへコピー
> Windows のバグなのか、Ngraphのバグなのか、もう少し
> 調べてみます。
残念ながら,理解できない部分が多いのですが,以下の文献を
読んでみて,WindowsNT 系列の不具合だと思いました.
中村拓男:Delphi Graphic Secrets Konw-how & Libraries
SOFT BANK Publishing, 3-3 TMetafile, pp. 126-
iwasakiさん、こんばんは。
拡張メタファイルは、以前 Windows 2000 でコピーすると
余白が入りすぎると言うご指摘がありまして、現在では
以下のようにしています。
o Windows 9x
図形の描画領域を Ngraph 側で計算し、そのサイズを
明示してコピーのシステムコールを呼ぶ。
o Windows NT/2000/XP
図形の描画領域は Ngraph 側で計算せず、システムコール
を呼ぶ。描画領域は Windows 側が自動的に計算してくれる。
つまり、Windows 2000 では、領域を指定すると余白が入りす
ぎるし、システム側に計算させると切れてしまうと言う事に
なります。
Windows のバグなのか、Ngraphのバグなのか、もう少し
調べてみます。
Ngraph を最新版(6.03.16b) に変更したところ,以下の
症状が出るようになりました.OS は Windows2000 です.
座標 x = 0 付近にテキストのあるグラフをクリップボードへ
拡張メタファイル,DPI=576(どちらもデフォルト)でコピー
するとテキストの一部がクリッピングされて切れてしまう.
ただし,DPI を 96 に変更すると上手くいきます.
具体的には,座標 (0,15000) に「テスト」という文字を
入力して上の条件でクリップボードにコピーすると,
「スト」になってしまう.
この症状は私の環境固有のものでしょうか?
この BBS のメニューを一応英語にしました(下手な英語で
すが)。メニューを変えただけですので、もちろん従来通り
日本語も使えます。ご質問、ご要望など、従来通り日本語
でご遠慮なくどうぞ。
Dear Dawji,
Please open the same data twice. For example,
let 'test.dat' be the data file. First, open
'test.dat' and set "(Y)-column" to 2. Next,
open the same 'test.dat' and set "(Y)-column"
to 3. In such a way, any combination of the
plotting types and/or column # is possible.
Sincerely,
Dear Sir,
I have three columns data as follow:
1 3 5
2 4 6
3 1 8
4 3 9
5 . .
6 . .
7 . .
8 . .
9 . .
Is there a method to draw these
data on the same graph using (
bar_solid_fill_y ) type
Thank you
yayoiさん、こんばんは。
> 保存項目で「フォント別名」をチェックしてOKすると
> 「例外番号:c0000005 (アクセス違反)」(drwtsn32.logより)で
> Ngraphが落ちます.なお,OSはWindows2000です.
確かにバグでした。早速修正して 6.03.16b にしました。
Linux版には「フォント別名」の項目自体がありませんの
で、Linux版は 6.03.16 のままです。
ご指摘、どうもありがとうございました。
okuiさん、こんばんは。
一つだけ言い忘れました。
> このマクロから menu オブジェクト に関係する部分をテキト〜に
> 削除したところ,(Xが起動していなくても)正常に動作しました.
new menu を削除した場合、legend-text に NGPファイル名を
入れる機能 %{menu::ngp} は使えなくなります。どうしてこの
機能を menu オブジェクトにくっ付けたかと言いますと、menu
を使わない場合、「グラフを保存したファイル」と言う概念その
ものが意味がなくなってしまうからです。補足しておきます。
Ngraph大変便利に使わせていただいております.
早速ですが,Windows版のVer.6.03.16にて,設定(P)-
初期状態としてセーブ(各種設定)(S) を選び,
保存項目で「フォント別名」をチェックしてOKすると
「例外番号:c0000005 (アクセス違反)」(drwtsn32.logより)で
Ngraphが落ちます.なお,OSはWindows2000です.
#ちなみにX版では同じ操作をしてもLinux, DigitalUNIXとも落ちません.
以前のバージョンでは落ちなかったように思います.
お時間ありましたらご検討ください.
isizakaさん,早速のご回答ありがとうございます.
> となっていると思いますが、 open display が失敗するのは
> new menu の部分です。ですから new menu の無い初期化ファ
> イルを作って ngraph -i xxxx とすれば X が無くてもエラー
> にはなりません。
先出の伊東さんによるマクロ(ngp2)を,ngraph -i ngp2 として
使用しているのですが,マクロの内容は理解していません.
このマクロから menu オブジェクト に関係する部分をテキト〜に
削除したところ,(Xが起動していなくても)正常に動作しました.
とりあえず動いたので目的達成です.
ありがとうございました.
Ngraphオブジェクトの扱い方も 追い追い勉強しようと思います.
では.
okuiさん、こんばんは。
> X が立ち上がってない状態で ngraph -i を実行する方法はありませんか?
ngraph -i は
ngraph -i 初期化スクリプト
の様に使います。初期化スクリプトが指定されていない場合、
-i を指定しないのと同じです。で、初期化スクリプトを呼び
出すまで open display は実行されていない筈です。デフォル
トの初期化ファイル .Ngraph の場合
=============================
# Ngraph initialization script
new menu
system:0:login_shell=menu:0:menu
以下略
=============================
となっていると思いますが、 open display が失敗するのは
new menu の部分です。ですから new menu の無い初期化ファ
イルを作って ngraph -i xxxx とすれば X が無くてもエラー
にはなりません。
> 自動描画してブラウザに返す.というページを作成しようとしています.
それでしたら、以下の様な感じの初期化スクリプトになるかと
思います。
=============================
# Ngraph initialization script
コマンドライン解析(必要なら)
グラフの各種パラメタ設定(NGPファイルの読みこみ or データファイルのオープン、軸の設定などなど)
pdfファイルの作成。
del system:0
=============================
最後の del system:0 を実行すると Ngraph は終了します。
つまり、初期化ファイルの中で、全ての作業を行って、
そのまま終了させます。
あるいは、もしかして(良く分かりませんが)CGI の中で
も Ngraphのシェルでインタラクティブに何かをしたいので
したら、デフォルトの初期化スクリプトを
=============================
# Ngraph initialization script
system:0:login_shell=shell:0:shell
以下同じ
=============================
とします。こうするとXのGUIは立ち上がらずに(つまりXは全く
使いません)、Ngraph シェルだけが立ち上がります。
X の話題なのかも知れませんが...
X が立ち上がってない状態で ngraph -i を実行する方法はありませんか?
OSはFreeBSD.apacheサーバーを通したCGIで ngraph -i を起動しています.
Web上でデータファイルを選択すると,伊東さん作成のマクロ
"http://homepage3.nifty.com/slokar/index.html" で pdf形式のグラフを
自動描画してブラウザに返す.というページを作成しようとしています.
だれかがログインしていて X が動いている場合には,
CGIで ngraph -i を呼び出す前に DISPLAY=localhost:0 などと
しておけば問題なく動作します.
しかし,文字端末しか動いてない時や,XDMのログイン画面が出ている
状態で,ngraph -i を起動すると,
Xlib: connection to "localhost:0.0" refused by server
Xlib: Client is not authorized to connect to Server
Cannot open display.
と言われて ngraph -i が失敗します.
つまり,誰もXを動かしていない時でも,CGIから ngraph -i が
動く様にしたいのですが,良い方法はないでしょうか.
isizaka様
丁寧にお答え頂いてありがとうございます。
座標値がでていたことは知ってましたが、正確に値が取れているかわからないため、使っていませんでした。
また、座標軸と連動していなければ、軸設定が変わったときすべてやり直す必要がありましたので。
データファイルにて対応したいと思います。
どうもありがとうございました。
Jackさん、こんばんは。
> たとえば、Y軸=100,X軸=50の位置を矢印で引き出し、コメント付ける時などはどうしたらよいのでしょうか?
DOS版の時からそうですが、マウスポインターの座標値が
Coordinate Window に表示されています。その値を見なが
ら、必要な場所に矢印を入れます。
どうしても座標軸と連動していなければ困ると言う場合に
はデータファイルを作成して、"arrow" のタイプで矢印や
線を引く事になります。
レジェンドの座標について質問があります。
Ngraphのレジェンドは、紙に対する座標(絶対座標?)に対して座標が設定できるようですが、Sma4Winのように軸に対しての座標指定は出来ないでしょうか?
たとえば、Y軸=100,X軸=50の位置を矢印で引き出し、コメント付ける時などはどうしたらよいのでしょうか?
isizaka様
早速のご返事、ありがとうございます。
明日早々にも試してみます。
konishi
konishiさん、こんばんは。
==autodraw.nsc========
new file
file::file=demo2.dat
while true
do
gra::clear
gra::draw
if kbhit
then
break
fi
sleep 3
done
del file
========================
になります。ただし kbhit は組込み関数ではありません
ので、
========================
int main()
{
if (kbhit()) return 0;
else return 1;
}
========================
の様な外部関数を別途作成して下さい。こうしておけば、
何かキーを押す事でループから抜けられます。上記のスク
リプトを[Ngraphシェル] の中から
. autodraw.nsc
の様にして実行します。シェルから実行するのは、シェルでな
いとキーの入力ができないからです。kbhit が GUI のプログ
ラムであればこの限りではありません(アドインとしてで使え
ます)。
また、このスクリプトでは軸の設定などはされませんので、あ
らかじめ軸スケールの設定が為されている事が前提となります
(スクリプトの先頭にオートスケール機能を入れる事もできま
すが)。
> K. N. さん、こんばんは。
>
> >「Y=%00*X0+%01*X1」が得られた式ですが。
>
> ちょっと表示が分かり難いと思いますが、%0i*X^i と、Xの
> べき乗になっているかと思います。つまり
>
> Y=%00+%01*X
>
> の意味になります。
>
> これは「Y=A*X+B」の式で表すと、%00=B、%01=Aと考えてよろしいのでしょうか?表示された式はXが2つあるので混乱してしまって・・・。教えてください。お願いします。
ありがとうございます。解決しました!!
K. N. さん、こんばんは。
>「Y=%00*X0+%01*X1」が得られた式ですが。
ちょっと表示が分かり難いと思いますが、%0i*X^i と、Xの
べき乗になっているかと思います。つまり
Y=%00+%01*X
の意味になります。
グラフを一定時間毎あるいはデータファイルの変更のたびに自動的に再描画させる方法はないでしょうか?
スクリプトの知識がないまま、以下のようなスクリプトを書いてみたのですがうまくいきません。
new file
file::file=test.dat
while file::load_data
do
file::clear
file::draw
sleep 3
done
file::closedata
del file
一度は描画しなおすのでループの処理の問題だとは思いますが対処方法がよくわかりません。
よろしく御教授ください。
実際にやりたいことは、RS-232Cで送られてくるデータをリアルタイムでグラフ化したいのです。gnuplotを使ってもいいのですが、最終的にはNgraphでグラフ化するので、データ取り込みの段階からNgraphが使えれば手間が省けるかなと思いました。なお、OSはVine Linux 2.5です。
よろしくお願いします。
データをフィットで直線近似して、結果を表示させたところ、
%00と%01の二つが表示されました。「Y=%00*X0+%01*X1」が得られた式ですが。これは「Y=A*X+B」の式で表すと、%00=B、%01=Aと考えてよろしいのでしょうか?表示された式はXが2つあるので混乱してしまって・・・。教えてください。お願いします。
> いえ、つまり「davx 等は追加しましたが、これ以上はどう
> しようも無いのではないでしょうか?」と言う意味です。
自分としてもdavx等で既に十分と思います。バージョンアップを期待してお待ちします。
時間がかかった自分のスクリプトは、見よう見真似で作ったもので、${file::data_y}という取り方を知らなかったため、whileループ内で file::getdataしながらスクリプト内で計算していました。(平均値よりももっと複雑な計算です)
そこでスクリプト内とデータファイルの数式変換内とで実行速度の違いがあるではないかと思ったのです。これが数式変換にこだわっていた理由です。
${file::data_y}で数式変換後の値を集める方法にすれば、スクリプトでも実行時間はあまり変わらないのかもしれませんが、標準的なインターフェイス内でスクリプトを使わずにできるという点で、davxなどは有意義であると思います。
> いずれにしましても、次期バージョンでは平均値は legend-text
> に %{file:0:davy} と入れるだけでできます。また、例えば10行目
> の3カラムのデータの二乗したデータを入れたいのでしたら、
> 現在既に実装されている file::column を使って
> %[%{file:X:column:10 3}^2]
> と legend-text に入れる事ができます。
スクリプトが苦手な私にとっては非常に助かります。私が思いつく範囲では、なんでもできると言っていいです。
> ひょっとしてご要望は「N行目のYの数式変換後のデータを
> legend-text として入れたい」と言うような事だったのでしょうか?
これは私の要望とはちょっと違いますが、そのような使い方をされたい方もいらっしゃると思います。
以上、何度もありがとうございました。
aimaduさん、こんばんは。
> ご対応ありがとうございます。すでに実装されたということですが、公開はもう少し仕様を詰めてからされるのでしょうか?
いえ、つまり「davx 等は追加しましたが、これ以上はどう
しようも無いのではないでしょうか?」と言う意味です。
ですから、これ以上詰め様が無いのですが…。
> dminxはデータの数式変換後のデータと考えてよろしいですか?
そうですが、何か誤解が有る様に思います。初めに
>グラフ中に、データの最大値や平均値などの数値を表示したい>のですが、スクリプトを使ってテキストの中身を書き換え
>るしかないでしょうか?
>試しにトライしてみましたが、非常に時間がかかるようになってしまいました)
と言う事でしたが、平均値を legend-text に入れるように
するアドインスクリプトは、現バージョンの場合、
========================================
new file
file::file=demo2.dat
new double
double::@=0
new int
int::@=0
file::opendata
while file::getdata
do
double::@=${double::@}+${file::data_y}
int::@=${int::@}+1
done
file::closedata
del file
double::@=${double::@}/${int::@}
new text
text::text=${double::@}
del double
del int
========================================
の様になります。もちろん数式変換後のデータの平均が求めら
れます。これが「時間が掛かる」と言っていらっしゃるのかと
思ったのですが、そうではないのでしょうか?
>実行速度に関して心配されていますが、データファイルの数式変換機能を用
>いた場合には複数のデータ列を使っても、あまり実行速度が落ちたとは感じませんでした。
現バージョンの場合のどこが時間が掛かってしまって困っていらっ
しゃったのかが良く分からなくなってしまったのですが…。
いずれにしましても、次期バージョンでは平均値は legend-text
に %{file:0:davy} と入れるだけでできます。また、例えば10行目
の3カラムのデータの二乗したデータを入れたいのでしたら、
現在既に実装されている file::column を使って
%[%{file:X:column:10 3}^2]
と legend-text に入れる事ができます。
ひょっとしてご要望は「N行目のYの数式変換後のデータを
legend-text として入れたい」と言うような事だったのでしょうか?
ついでですので、この機能も追加しました。
%{file:0:dy 10} とすれば 10行目のデータ(数式変換後)を
legend-text として入れることができるようになります。
ご対応ありがとうございます。すでに実装されたということですが、公開はもう少し仕様を詰めてからされるのでしょうか?
dminxはデータの数式変換後のデータと考えてよろしいですか?それであれば、データを計算用にダミーでオープンすることで、かなり一般的なことができますね。実行速度に関して心配されていますが、データファイルの数式変換機能を用いた場合には複数のデータ列を使っても、あまり実行速度が落ちたとは感じませんでした。
データプロットの数式変換以上に一般的な処理をして、表示したい数値があるのかというと、私には思いつきません。掲示板をごらんの他のみなさんはどうお考えでしょうか?
テキストの中身を、制御文字を使って%{file:0:***}と入れる方法は、既に標準的な機能として実装されていました。勉強不足でした。
オブジェクトを意識せずにGUI(?)から設定できるインターフェイスがあるとすばらしいですが、複雑になってかえって分かりにくくなってしまう気もします。
ご対応ありがとうございます。すでに実装されたということですが、公開はもう少し仕様を詰めてからされるのでしょうか?
dminxはデータの数式変換後のデータと考えてよろしいですか?それであれば、データを計算用にダミーでオープンすることで、かなり一般的なことができますね。実行速度に関して心配されていますが、データファイルの数式変換機能を用いた場合には複数のデータ列を使っても、あまり実行速度が落ちたとは感じませんでした。
データプロットの数式変換以上に一般的な処理をして、表示したい数値があるのかというと、私には思いつきません。掲示板をごらんの他のみなさんはどうお考えでしょうか?
テキストの中身を、制御文字を使って%{file:0:***}と入れる方法は、既に標準的な機能として実装されていました。勉強不足でした。
オブジェクトを意識せずにGUI(?)から設定できるインターフェイスがあるとすばらしいですが、複雑になってかえって分かりにくくなってしまう気もします。
aimaduさん、こんにちは。
> グラフ中に、データの最大値や平均値などの数値を表示したいのですが、スクリプトを使ってテキストの中身を書き換えるしかないでしょうか?
はい。今のところ平均値はスクリプトを使うしかありません。
スクリプトはインタープリターですので、データ点が多い場合
等は遅くなってしまいます。ただ、最大値に関しては例えば、
file:0:boundings false
new text
text::text='%{file:0:maxy}'
とすれば良いので実行も速くなります。boundings は軸の
最大最小の設定の為に用意してある関数で、boundings の実行
後には file オブジェクトの maxx, minx, maxy, miny がセット
されます。
> 将来的には、標準のテキストに、グラフから数式変換して得られる数値を表示するような機能が付くと便利だと思うのですが、いかがでしょうか?
取り敢えず、dminx, dmaxx, davx, dsigx などを追加しました。
上記の様に boundings を実行しなくても最小値、最大値、平均値、
標準偏差が取得できますので、legend-textに %{file:0:dsigx} 等
と直接入れられます。
おそらくご要望ではもっと一般的な処理ができないかと言う事
だと思います。ですが、データファイルには複数のデータ行が
ありますので、大抵はループ処理が必要になります。一般的な
処理に対応しようとしますと、結局インタプリターにせざるを
得ませんので、速度はやはり遅くなってしまいますが如何で
しょうか?
また、legend-text 中で計算を行うと言うのは面白いアイデア
ですので、入れる事にします(すでに入れました)。
%[exp(1)+1]
とすると exp(1)+1 の値が legend-text として入れられます。
DOS時代からお世話になり、今はWin版を使用しています。
グラフ中に、データの最大値や平均値などの数値を表示したいのですが、スクリプトを使ってテキストの中身を書き換えるしかないでしょうか?
(試しにトライしてみましたが、非常に時間がかかるようになってしまいました)
将来的には、標準のテキストに、グラフから数式変換して得られる数値を表示するような機能が付くと便利だと思うのですが、いかがでしょうか?
> K.Nさん、こんばんは。
>
> > 質問なのですが、Excelのシートに書かれているデータを
> > 開いても、データが出てこず、グラフが描けないのですが
> > どうしたらよいでしょうか?
>
> Ngraphで扱えるデータファイルは、データをカンマや空白で
> 区切ったテキストファイルです。
>
> Excel では普通は ○○○.xls というファイルにセーブされ
> ますが、これは Excel 独自のファイル形式ですので Ngraph
> では扱えません。
>
> そこで Excel で保存する時に「ファイルの種類」を
> 「CSV(カンマ区切り)」にしてセーブして下さい。
>
> この様にしてセーブされたファイル(○○○.csv)を Ngraph
> の[データ]-[開く]で開けばグラフが描画できると思います。
>
懇切丁寧に教えてくださってありがとうございます。早速やってみようと思います。
これからも利用させていただきます。
K.Nさん、こんばんは。
> 質問なのですが、Excelのシートに書かれているデータを
> 開いても、データが出てこず、グラフが描けないのですが
> どうしたらよいでしょうか?
Ngraphで扱えるデータファイルは、データをカンマや空白で
区切ったテキストファイルです。
Excel では普通は ○○○.xls というファイルにセーブされ
ますが、これは Excel 独自のファイル形式ですので Ngraph
では扱えません。
そこで Excel で保存する時に「ファイルの種類」を
「CSV(カンマ区切り)」にしてセーブして下さい。
この様にしてセーブされたファイル(○○○.csv)を Ngraph
の[データ]-[開く]で開けばグラフが描画できると思います。