TennisVisuals / updating-radar-chart

Updating Radar Chart Visualization with extensive configuration options
MIT License
13 stars 7 forks source link

filter id conflicts when more than one on a page #1

Closed timelyportfolio closed 8 years ago

timelyportfolio commented 8 years ago

Thanks so much for this! I plan to integrate it into an htmlwidget for R. Not sure of the best way to handle this, but I thought I would report one "problem" that I discovered. The filter is assigned an id of glow which means when more than one radar chart exists on a page, we get a conflict and bad behavior. For now I have just turned it off, but it would be nice to have a unique id assigned, so that we can use filter even when multiple radar charts exist on a single page.

TennisVisuals commented 8 years ago

yes! I've got a string of enhancements in queue. should be a simple fix. I have no experience with htmlwidgets - looking forward to learning from this!

timelyportfolio commented 8 years ago

great to hear, if you know R, here is a link to the repo d3radarR. As of now, it is very crude, but does "work". Here are some examples. I'll try to refine it enough to make it the widget of the week on http://buildingwidgets.com. Thanks again for the very fine work. I'm also a really big fan of your tree.

TennisVisuals commented 8 years ago

For it to work, the filter needs to have an id. The idea is that users can create their own filters and use 'options.filter' to attach them to the chart. I've added 'options.filter_id' so that users can set an id for the internally created filter; this would need to be done for each instance... but if they're being generated then you could generate a unique id each time and set 'options.filter' and 'options.filter_id' to the same unique id.

TennisVisuals commented 8 years ago

which tree are you a fan of? GameTree or RallyTree? I think they're both specific to Tennis, but let me know if you can think of a more general application. I'm re-writing all my components to fit the model of radarChart such that data can be pushed/popped, which will enable real-time data feeds from tennis matches. Is there a model for such interaction in R (I imagine there would be for financial data feeds)?

timelyportfolio commented 8 years ago

Not sure if you saw this, but if you plan to rewrite all of the components, this might be something else to keep in mind :) https://medium.com/@mbostock/let-s-make-a-d3-plugin-c8e697599f48.

GameTree was the one I was expressing fondness for. I don't think I have seen rally tree.

TennisVisuals commented 8 years ago

Yes, I have seen Mike's d3-plugin post, but thanks for thinking of me!
Here is RallyTree: http://tennisvisuals.com/examples/RallyTree.html I suppose there is a way to generalize GameTree for Markov Chains, but I'd have to think about that... Have you spent any time thinking about the ability in radarChart to invert axes and add ranges to them? I'm going to add a feature so that scales for each axis appear when you hover over them (if they are not % or all the same range of %'s). Also going to add Axis Label extended descriptions when hovering... Any other nifties you can think of to add to the radarChart?

timelyportfolio commented 8 years ago

RallyTree is a great concept. I'm of course, as you already hinted, thinking of other applications in other domains.

in terms of features, parallel-coordinates are basically radar charts in cartesian space, so looking there might trigger some ideas. I'm betting you have seen Kevin Schaul's star plots, but if not, these also might help generate new features.

In particular, I would eventually like to further explore the chart.events() API that you have provided.

TennisVisuals commented 8 years ago

I did a parallel coordinates graph early on and there is one in the match view on the website... that's where I got the idea for having radar charts with different types of axes... you can read about my development of the concept on my blog tennisviz.blogspot.com It seems to me that the star plots are just the same as older version of the radar chart where I had a minimized version that hid the axes labels until hover events. I can create a size threshold for the new radarChart that will achieve the same thing. Glad you noticed the chart.events() API; I think it is one of the more powerful ideas I've introduced in the coding philosophy. You can override the built-in tooltip. What I will be doing on TennisVisuals is having all of the components tied together via the chart.events() APIs so that they filter each other, which will enable a new level of interactively exploring the data.