3D interactive graph with labels for individual points - browser

I'm trying to graph data similarly to this, except using an actual 3rd dimension instead of color. Vis.js would have been exactly what I want, except it doesn't seem to support labels for individual points. Where can I get interactive, preferably in-browser, 3D graph visualization for this type of data?

The Graph3d of vis.js doesn't support setting labels for individual data points, but you can set tooltips, see: http://visjs.org/examples/graph3d/11_tooltips.html. Maybe that's a workable solution for you? If not, you could open a feature request for this: https://github.com/almende/vis/issues

Related

How to use a model-view architecture with pyqtgraph plotting

Is it possible to implement a model-view architecture with pyqtgraph? It seems like pyqtgraph forces you along a widget-centric approach (https://doc.qt.io/qt-5/modelview.html) in which each plotitem has its own scene?
It would be great if the ViewBox (see image below from docs -http://www.pyqtgraph.org/documentation/plotting.html) would be an actual "view" of a scene, and the axis items around it would be dependent on that particular view. Therefore, if a number of PlotWidgets/PlotItems were displaying the same PlotDataItems at different zoom-levels, if you changed the zorder or scaled an item this would be shown on all the PlotItems without resorting to sending signals etc between PlotItems.
To do this does the ViewBox have to be an embedded GraphicsView? Or is it possible to have a PlotItem on multiple GraphicsViews?
Thanks!
Some other reference links:
https://doc.qt.io/qt-5/graphicsview.html
https://doc.qt.io/qt-5/model-view-programming.html

Using the results of an interactive plot to update a second graph on a grid using Bokeh and CustomJS

I have an interactive Bokeh plot that uses CheckboxGroup to plot experimental additive values of different sources. In the background I have stationary plots of theoretical requirement values.
I want to be able to, e.g.
1.click on sourceA and sourceB resulting in the plot of sourceA+sourceB - I have 8-9 sources and already have this working
2.use a linked plot that shows the percentage error of this combination relative to all the theoretical requirement values.
I don't know JS so, can't really understand how to use this dynamic value for another plot.
Callback for the first part of the problem is as follows:
https://stackoverflow.com/a/54455722/8565759
I can't really show an image of the actual results, the data is export controlled.

Using images for points in gnuplot

I have a frivolous question. Is there any way to use an image in lieu of points in gnuplot? For example, if I was plotting data about pasta consumption or something, I would have pictures of pasta (instead of usual gnuplot points).
Another option is to find a dingbats type of font with a suitable glyph. Then you can use "plot with labels" using that glyph as the label string. See for example the 5th plot in the demo
http://gnuplot.sourceforge.net/demo/stringvar.html
I haven't played around with this feature at all myself, however, there is:
http://gnuplot.sourceforge.net/demo/barchart_art.html
Which shows the use of png files on a bar chart (Note, that this feature was added in Gnuplot 4.5 -- I think). With a little creativity, it seems like you could use that feature to do what you're asking -- although it would require a whole bunch of plot commands so it might be useful to write a script to generate the gnuplot script (or use iteration depending on your dataset) -- Obviously your image files would have to be in a format that your version of gnuplot understands as well ...
A possible strategy may be the plot with rgbimage option in gnuplot.
See the second example over here: http://www.gnuplot.info/demo_4.2/image.html
If you relate the center option with your data points, this may be possible.

How to visualize axis-aligned boxes with ParaView

I would like to visualize a number of axis-aligned bounding boxes in ParaView. I will create an unstructured grid and insert vtkVoxel cells in there. How many points should each voxel be associated with? Since the documentation says voxels are efficient in storage, I thought two corners would be enough, but this post, for example, seems to be setting 8 for each of them. I was not able to get anything from the documentation either.

2d geometry drawing tool

I'm looking for some tool/library that is able to draw simple 2d geometries from text file or programatically. I already found List of interactive geometry software but that not quite what I'm looking for. I would prefer something more similar in usage to graphviz or gnuplot. I already wrote some scripts for gnuplot but this tool has been designed for different purposes. Required functionality:
support for different kind of 2D geometries: points, segments, lines, circles, polygons
simple input type format maybe similar to postgis Well Known Text
support for objects additional data like tags and colors definition
output in common image format or some kind of interactive GUI (with zoom in/out and select object)
configurable grid
autoscale or draw in defined area
I will use it for testing geometry algorithms and don't want to reinvent the wheel.
Matplotlib. I'm not familiar with all the aspects of this Python library but I've heard it is pretty good.
To quote their introduction,
matplotlib is a python 2D plotting
library which produces publication
quality figures in a variety of
hardcopy formats and interactive
environments across platforms.
matplotlib can be used in python
scripts, the python and ipython shell
(ala MATLAB®* or Mathematica®†), web
application servers, and six graphical
user interface toolkits.
matplotlib tries to make easy things
easy and hard things possible. You can
generate plots, histograms, power
spectra, bar charts, errorcharts,
scatterplots, etc, with just a few
lines of code. For a sampling, see the
screenshots, thumbnail gallery, and
examples directory
(source: sourceforge.net)
>
For example, using "ipython -pylab" to
provide an interactive environment, to
generate 10,000 gaussian random
numbers and plot a histogram with 100
bins, you simply need to type
x = randn(10000)
hist(x, 100)
For the power user, you have full
control of line styles, font
properties, axes properties, etc, via
an object oriented interface or via a
set of functions familiar to MATLAB
users. The pylab mode provides all of
the pyplot plotting functions listed
below, as well as non-plotting
functions from numpy and
matplotlib.mlab.
Maybe dia, with it's SVG output option is what you're looking for? It can be scripted in Python.

Resources