Released the Latest Versions of RINEARN Graph and VCSSL - Now Supporting Customizable Tick Positions and Labels!
Recently, RINEARN released the latest versions of its graphing software, RINEARN Graph 3D and RINEARN Graph 2D, as well as the scripting language VCSSL, which provides control functions for these tools.
Starting with this update, a new "MANUAL" tick mode is now supported, allowing users to freely specify the positions and labels of ticks on the graph. In this article, we'll dive into the details of this new feature!
- Current Challenges
- Current State: Neglecting Fine Details in Aesthetics
- Ticks Are a Notable Example
- Major Improvements in the Next Version, but Still Years Away...
- Improving Tick Rendering in the Current Version
- Enhancements to Tick Rendering
- Introducing the "MANUAL" Mode
- How to Use
- Extended APIs for Programmatic Control
- For Java
- For VCSSL
- Future Plans
Current Challenges
Before jumping into the details of this new feature, let's first take a look at the previous state of things.
Current State: Neglecting Fine Details in Aesthetics
RINEARN Graph is a graphing tool primarily designed for everyday use, such as during data analysis, rather than for creating polished visuals for presentations or publications. It assumes that for situations needing neat and good-looking graphs, users will rely on dedicated, aesthetics-focused graphing software.
This design philosophy stems from the fact that, while there are already numerous well-established options for high-quality graphing software, tools emphasizing ease of use for daily tasks are surprisingly scarce. Filling this gap is the primary role of RINEARN Graph.
That said, to be honest, this approach has sometimes been used as an excuse for neglecting improvements in finer aesthetic details. For example, enhancements related to "visual quality" often end up with lower priority and are postponed.
In fact, some crude features introduced in older versions have remained unchanged for quite a long time.
Ticks Are a Notable Example
For those who have been using RINEARN Graph in their daily work, this is probably already well-known: the handling of "ticks" has remained largely unchanged since the initial versions.
Specifically, up until now, the only available mode has been one where ticks are evenly spaced between the maximum and minimum values of the plot range. While this mode can be convenient in certain scenarios, having only this single mode has been an overly simplistic approach. This was something we has long been aware of.
However, enhancing the rendering of ticks is relatively complicated and tricky. Since tick-related processes are deeply integrated with the core graph rendering, retrofitting improvements after the fact is a challenging and intricate task. As a result, these enhancements have been repeatedly postponed.
Major Improvements in the Next Version, but Still Years Away...
In the next-generation version, Ver.6, which is already under development, tick rendering has been prioritized for significant upgrades, allowing for much greater configurability. However, the official release of Ver.6 is still likely to be several years away.
Meanwhile, user requests and inquiries about tick rendering continue to come in. Recently, we even received a series of requests, one of which came from overseas. At this point, simply telling users to "wait for Ver.6 in a few years" has become untenable.
It turns out that tick rendering issues have been a much bigger hindrance to users than we, as the developer, had anticipated.
Improving Tick Rendering in the Current Version
In light of these circumstances, we've decided to enhance tick rendering even in the current Ver.5 series to provide greater flexibility.
Although this might result in redundant effort alongside the development of Ver.6, we believe it's worth it considering that Ver.5 will still be in use for several years to come. Additionally, these enhancements can serve as a prototype, allowing us to gather early feedback from users.
Enhancements to Tick Rendering
Now, the improvements to tick rendering in RINEARN Graph will be implemented in several stages.
Introducing the "MANUAL" Mode
As the first step, we've introduced a "MANUAL" mode. This mode allows users to specify the positions and labels of ticks completely freely. For example, it enables configurations like the one shown below:
As illustrated, this mode lets you easily create tick configurations that were previously impossible, no matter how you tried.
However, in this mode, you must explicitly specify the positions and labels of the ticks every time, which can be inconvenient for regular use.
Still, as the first step of improvements, we prioritized flexibility, enabling users to create virtually any tick configuration that was previously unachievable.
In future updates, we plan to introduce additional modes that are more user-friendly, visually refined, and suitable for regular use.
How to Use
To use this new mode, start by navigating to "Edit" > "Set Scale" > "Ticks" tab from the menu bar.
In the "Mode" dropdown, you'll see that the default setting is "EQUAL DIVISION", which corresponds to the previous mode. Change this setting to "MANUAL", the new mode introduced in this update.
After selecting "MANUAL," input fields labeled "Coordinates" and "Labels" will appear. In the "Coordinates" field, enter the coordinates for tick positions, and in the "Labels" field, enter the corresponding tick labels, separated by commas (,).
Once you've entered the desired values, click the "SET" button to apply the changes to the graph. The results will look like the example shown earlier.
Extended APIs for Programmatic Control
RINEARN Graph can be programmatically controlled, making it suitable for tasks such as automating the processing of large datasets, utilizing it as a graph rendering library, and more.
Alongside this update, we have added new functionalities to the programmatic control APIs, allowing users to freely configure the positions and labels of graph ticks.
For Java
Let's start with the Java control APIs. For details on how to use these APIs, please refer to the documentation for 3D graphs or documentation for 2D graphs.
In the 3D API, the following methods have been added to the top-level RinearnGraph3D class:
- setXTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the X-axis.
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the Y-axis.
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the Z-axis.
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the color bar.
Similarly, for 2D graphs, the following methods have been added to the RinearnGraph2D class:
- setXTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the X-axis.
- setYTicks(double[] tickCoordinates, String[] tickLabels)
- Sets the positions and labels of ticks on the Y-axis.
For VCSSL
Next, let's look at the extended APIs for the scripting language VCSSL.
In the case of 3D graphs, the following functions have been added to the Graph3D library:
- setGraph3DTickX(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the X-axis.
- setGraph3DTickY(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the Y-axis.
- setGraph3DTickZ(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the Z-axis.
- setGraph3DTickColorBar(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the color bar.
- setGraph3DTick(int graphID, double xTickCoords[], string xTickLabels[], double yTickCoords[], string yTickLabels[], double zTickCoords[], string zTickLabels[], double colorBarTickCoords[], string colorBarTickLabels[])
- Sets the positions and labels of ticks for all axes.
For 2D graphs, the following functions have been added to the Graph2D library:
- setGraph2DTickX(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the X-axis.
- setGraph2DTickY(int graphID, double tickCoords[], string tickLabels[])
- Sets the positions and labels of ticks on the Y-axis.
- setGraph2DTick(int graphID, double xTickCoords[], string xTickLabels[], double yTickCoords[], string yTickLabels[])
- Sets the positions and labels of ticks for both axes.
Future Plans
The enhancements introduced in this update are as described above.
As mentioned in the main text, the tick rendering functionality of RINEARN Graph will be expanded in multiple stages. This update represents the first step, and we plan to add more modes in the future. We will keep you informed about these updates through this "News" section as they are released!
Released the Latest Versions of RINEARN Graph and VCSSL - Now Supporting Customizable Tick Positions and Labels!
2024-11-24 -
Starting with this update, a new "MANUAL" tick mode is now supported, allowing users to freely specify the positions and labels of ticks on the graph. We'll explain the details and how to use it.
Released Exevalator 2.2: Now Compatible with TypeScript and Usable in Web Browsers
2024-10-22 -
The open-source expression evaluation library, Exevalator, has been updated to version 2.2. It now supports TypeScript and can be used for evaluating expressions directly in web browsers. Explains the details.
Behind the Scenes of Creating an Assistant AI (Part 1: Fundamental Knowledge)
2024-10-07 -
The first part of a series on how to create an Assistant AI. In this article, we introduce the essential knowledge you need to grasp before building an Assistant AI. What exactly is an LLM-based AI? What is RAG? And more.
Launching an Assistant AI to Support Software Usage!
2024-09-20 -
We've launched an Assistant AI that answers questions about how to use RINEARN software and helps with certain tasks. Anyone with a ChatGPT account can use it for free. We'll explain how to use it.
Software Updates: Command Expansion in RINEARN Graph, and English Support in VCSSL
2024-02-05 -
We updated our apps. This updates include "Enhancing the Command-Line Features of RINEARN Graph" and "Adding English Support to VCSSL." Dives into each of them!
Inside the Repetitive Execution Speedup Impremented in Vnano Ver.1.1
2024-01-17 -
Delves into the update in Vnano 1.1 from a developer's viewpoint, providing detailed insights into the specific improvements made to the internal structure of the script engine.