Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BF/OA: ND visualization of stream data, points, hypercuboids, clusters with spider graphs #1022

Open
12 tasks
detlefarend opened this issue Jun 25, 2024 · 3 comments · Fixed by #1023
Open
12 tasks
Assignees
Labels
enhancement New feature or request next release OA Online adaptivitiy

Comments

@detlefarend
Copy link
Member

detlefarend commented Jun 25, 2024

Description/Motivation
N-dimensional data like stream instances, hyper-points and hypercuboids can be visualized using spider graphs. Each dimension is mapped to an axis of the graph. A hyper-point/stream instance has a single position at each axis and can be visualized as a number of lines connecting these positions axis by axis. A hypercuboid has min/max-borders on each dimension/axis and can be visualized accordingly.

Spider graphs

Task list

  • Class bf.plot.Plottable
    Alternatively to a matplotlib 2D/3D/ND plot, a new spider plot systematics shall be established. For this, a host plot with further high-level helper methods shall be implemented.
    • New view ND_SPIDER
    • New method _init_nd_spider()
      This method initializes all necessary data structures of the spider plot systematics.
    • New custom method _update_nd_spider()
  • Class bf.math.geometry.Point
    • Method _update_plot_nd_spider()
  • Class bf.math.geometry.Hypercuboid
    • Method _update_plot_nd_spider()
  • Class bf.streams.tasks.StreamTask
    • Method _update_plot_nd_spider()
  • Class oa.streams.tasks.clusteranalyzers.clusters.Centroid
    • Method _update_plot_nd_spider()

Cross references
https://stackoverflow.com/questions/52910187/how-to-make-a-polygon-radar-spider-chart-in-python
https://matplotlib.org/stable/gallery/specialty_plots/radar_chart.html

@detlefarend detlefarend added enhancement New feature or request OA Online adaptivitiy next release labels Jun 25, 2024
@detlefarend detlefarend self-assigned this Jun 25, 2024
@detlefarend
Copy link
Member Author

@steveyuwono @syamrajsatheesh @laxmikantbaheti What do you think of this alternative approach for nd visualization?

@syamrajsatheesh
Copy link
Contributor

It is a nice way to visualize ND plots. But what about data with a lot of features or dimensions. For example, when there are 20 features, it would be hard to read the plot. Upto 8 features is OK I think.

@detlefarend
Copy link
Member Author

It is a nice way to visualize ND plots. But what about data with a lot of features or dimensions. For example, when there are 20 features, it would be hard to read the plot. Upto 8 features is OK I think.

Hi Syam, you are totally right. This visualization has limits as well. On the other hand, our current nd visualization is also hard to read for a higher number of dimensions and it doesn't cover cluster visualization. Finally, 8 dims are better than nothing (cluster vis).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request next release OA Online adaptivitiy
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants