リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
RINEARN では先日、グラフソフトのリニアングラフ3D や リニアングラフ2D、およびこれらの制御機能を持つスクリプト言語 VCSSL の最新版をリリースしました。
今回の更新から、グラフの目盛りの位置や内容を、自由に指定できる「手動(MANUAL)」目盛りモードがサポートされました。この記事では、その詳細をお知らせします!
現状の課題
今回の拡張の話に入る前に、まずは今までの状況について触れておきましょう。
現状のリニアングラフでは、細かい見栄えについては結構投げやりな部分がある
リニアングラフは、発表/出版用などに整った図を作成する方向よりは、むしろデータ解析の日常などでの「普段使い」をメインに想定しているグラフソフトです。 そして、整った作図が必要な場面では、前者のような作図品質重視のグラフソフトを併用する事を想定しています。
これは、作図品質重視のグラフソフトは既にメジャーなものがいくつも存在するのに対して、日常での手軽さを重視したようなグラフソフトは意外と(本当に意外なほど)少なく、そこを補うのがリニアングラフの一番の役割と考えているためです。
ただ、正直に言うと、上記を悪い意味で言い訳にしてしまっている 部分もあります。 例えば、細かい「見栄え」の改善に関しては、なかなか高い優先度が割り振られず、先延ばしになりがちです。
実際、かなり昔のバージョンで実装された投げやりな仕様が、そのままずっと続投されている箇所もあります。
目盛りは特にそう
例えば、実際にリニアングラフを日常で使ってくださっている方々には周知の事実かと思いますが、「目盛り」に関しては初期バージョンからあまり変化していないです。
具体的にはこれまで、「プロット範囲の最大値と最小値の間を等分割して、その位置に目盛りを描く」というモードしかありませんでした。 これはこれで便利な場面もあるのですが、さすがに「このモードしかない」というのは極端すぎるだろう、というのは開発側でもずっと認識していました。
しかし、目盛り関連の処理って、実は意外と結構複雑でややこしいんです。 しかもグラフの中枢の描画処理に関わるので、後付けで入れ込むと結構厄介な拡張作業になります。 そのため、今までずるずると先延ばしになってしまっていました。
次期版では大きく改善されるものの、リリースはまだ数年先…
一応、既に開発が始まっている次期版の Ver.6 では、目盛り描画は優先的なテコ入れ対象になっていて、設定自由度がかなり向上しています。 しかし Ver.6 の正式リリースにはまだ年単位の時間がかかりそうです。
で、そうしている間にも、やっぱり目盛り関連のご要望・ご質問は結構いただくんですよね。 直近でも数件続けてご要望をいただいて、そのうち1件は海外からで、さすがに「数年後の Ver.6 を待ってください」とは言っていられない状況になってきました。
どうも開発側が思っていた以上に、目盛り描画がユーザーの足を引っ張っていたようです。
現行版でも目盛り描画をテコ入れする事に
そんなこんなで結局、現行版の Ver.5 系でも、目盛り描画処理にテコ入れをして、自由度を増やしていく事に決めました。
次期版 Ver.6 の開発と二度手間になってしまいますが、まあ Ver.5 系もこの先数年は使われる事や、感想を早期に得られるプロトタイプ的な役割も期待できる事を考えると、それはそれでアリかなと判断しました。
目盛り描画の拡張
さて、リニアングラフでの目盛り描画のテコ入れは、いくつかの段階に分けて行う予定です。
今回追加したのは「手動」モード
今回はその第一弾として、「手動」モードをサポートしました。これは、目盛りの位置と表示内容を、完全に自由に指定できるモードです。 具体例としては下図のような感じです:
と、このように、従来だったらどう工夫しても絶対に無理だったような目盛りを簡単に描けます。
ただ、このモードでは、目盛りの位置と表示内容を「常に明示的に指定しないといけない」という事になるため、常用するには面倒です。
しかし改良の第一弾としては、とりあえず現状で不可能だった用途を幅広くカバーするために、「どんな目盛りでも一応は描ける」という自由度の高さを優先しました。
もっとお手軽で、見ばえがよく常用もできるようなモードは、また色々と工夫しながら、後々のアップデートで追加していきます。
使い方
この新しいモードを使うには、まずメニューバーから「編集」>「目盛りの設定」>「刻み」タブを開きます。
すると「モード」という選択項目があり、標準では「等分割」に設定されています。これが従来のモードです。ここを新たに、今回追加された「手動」に設定しましょう。
すると、「位置」と「表記」という入力項目が出現します。「位置」項目に目盛りの位置座標を、「表記」項目に目盛りの表示内容を、それぞれカンマ「 , 」区切りで入力します※。
項目内容を入力したら、「SET」ボタンを押すと、グラフに反映されます。結果は先ほど掲載した図の通りです。
プログラム制御用のAPIも拡張
ところでリニアングラフは、プログラムから制御して、グラフ描画ライブラリとして使ったり、大量のデータのプロット処理を自動化したり等もできます。
今回の拡張に併せて、そういったプログラム制御用のAPIにも、目盛りの位置・表記を自由に設定するための機能を追加しました。
Java言語
まずはJava言語での制御用APIです。APIの使い方については 3Dの方はこちらの解説ページ、2Dの方はこちらのページ をお読みください。
今回、3Dの方では、Java用APIの最表層である RinearnGraph3Dクラスに、以下のメソッドを追加しました:
- setXTicks(double[] tickCoordinates, String[] tickLabels)
- X軸の目盛りの位置とラベル(表記)を設定します。
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Y軸の目盛りの位置とラベル(表記)を設定します。
- setZTicks(double[] tickCoordinates, String[] tickLabels)
- Z軸の目盛りの位置とラベル(表記)を設定します。
- setColorBarTicks(double[] tickCoordinates, String[] tickLabels)
- カラーバーの目盛りの位置とラベル(表記)を設定します。
同様に2Dの方では、RinearnGraph2Dクラスに以下を追加しました:
- setXTicks(double[] tickCoordinates, String[] tickLabels)
- X軸の目盛りの位置とラベル(表記)を設定します。
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Y軸の目盛りの位置とラベル(表記)を設定します。
VCSSL
続いて、スクリプト言語 VCSSL での制御用APIの拡張です。
まず3Dの方では、Graph3Dライブラリに、以下の関数を追加しました:
- setGraph3DTickX(int graphID, double tickCoords[], string tickLabels[])
- X軸の目盛りの位置とラベル(表記)を設定します。
- setGraph3DTickY(int graphID, double tickCoords[], string tickLabels[])
- Y軸の目盛りの位置とラベル(表記)を設定します。
- setGraph3DTickZ(int graphID, double tickCoords[], string tickLabels[])
- Z軸の目盛りの位置とラベル(表記)を設定します。
- setGraph3DTickColorBar(int graphID, double tickCoords[], string tickLabels[])
- カラーバーの目盛りの位置とラベル(表記)を設定します。
- setGraph3DTick(int graphID, double xTickCoords[], string xTickLabels[], double yTickCoords[], string yTickLabels[], double zTickCoords[], string zTickLabels[], double colorBarTickCoords[], string colorBarTickLabels[])
- 各軸の目盛りの位置とラベル(表記)を設定します。
同様に2Dの方では、Graph2Dライブラリに以下の関数を追加しました:
- setGraph2DTickX(int graphID, double tickCoords[], string tickLabels[])
- X軸の目盛りの位置とラベル(表記)を設定します。
- setGraph2DTickY(int graphID, double tickCoords[], string tickLabels[])
- Y軸の目盛りの位置とラベル(表記)を設定します。
- setGraph2DTick(int graphID, double xTickCoords[], string xTickLabels[], double yTickCoords[], string yTickLabels[])
- 各軸の目盛りの位置とラベル(表記)を設定します。
今後
今回の拡張内容は、以上の通りです。
本文中でも述べた通り、リニアングラフの目盛り拡張は、複数の段階を検討しています。今回はその第一ステップで、今後も引き続きいくつかのモードを追加していく予定です。 その際は、またこのコーナーにて随時お知らせいたします!
リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 -
リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました! 併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。
Exevalator 2.2 をリリース、TypeScript 対応によりWebブラウザ上で動作可能に
2024-10-22 -
オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。新たに TypeScript に対応し、Webブラウザ上での式計算にも使えるようになりました。詳細を解説します。
アシスタントAI作成の舞台裏(その2、作成編)
2024-10-12 -
アシスタントAIの作成方法解説の後編です。実際にChatGPTの「GPTs」機能を用いて、アシスタントAIを作成する手順や、独自の知識をもたせたり、精度を出すためのノウハウなどを解説しています。
アシスタントAI作成の舞台裏(その1、基礎知識編)
2024-10-07 -
アシスタントAI作成方法解説の前編です。今回はまず、アシスタントAIを作る前に抑えておきたい、基礎知識を延々と解説しています。そもそもLLM型AIとはどんな存在か? RAGとは何か? 等々です。
ソフトの利用をサポートしてくれるアシスタントAIを提供開始!
2024-09-20 -
RINEARN製ソフトの使い方の質問応答や、一部作業のお手伝いをしてくれる、アシスタントAIを提供開始しました。ChatGPTアカウントさえあれば、誰でも無料で使用できます。使い方を解説します。
Exevalator 2.1 をリリース、新たに Visual Basic に対応
2024-07-28 -
オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。今回から、新たに Visual Basic(VB.NET)でも使用できるようになりました。詳細を解説します。
関数電卓 RINPn(りんぷん)、Esc キーで計算式の一発クリアが可能に
2024-07-20 -
関数電 RINPn の Ver.1.0.2 をリリースしました。今回から、キーボードの「 Esc 」キーを押すと、入力中の計算式を一発でクリアできるようになりました。詳細を解説します。
Exevalator 2.0 をリリース、互換性に注意が必要なバグ修正が 1 件
2024-07-14 -
オープンソースの式計算ライブラリ「Exevalator (エグゼバレータ)」の2.0をリリースしました。今回の更新では、互換性に注意を要する 1 件のバグ修正があります。詳細を解説します。
各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024-02-05 -
各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。
Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024-01-17 -
前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。