Open johann-petrak opened 4 years ago
I agree that we should have an additional hover mode for this behaviour but the current behaviour is not considered a bug at this time :)
My concern is that showing a single random data point when there are many can lead to serious misinterpretation, especially when one is used to a library like hvPlot which does show all the data points. One of the main purposes of visualizations and graphs is to learn about and understand data and I think all packages have to be very careful about how they do that. So if the current behaviour is not considered a bug, it should at least be clearly documented and explained wherever it could be important.
But having a mode to actually display
Currently I would personally need some kind of workaround, so anything that would help to implement an equivalent functionality would be tremendously helpful. All I can see at the moment is processing the data myself to calculate a list of data points per distinct coordinate and then use code and a custom hover template to do it all in code, but that is pretty inconvenient in comparison to just using hvPlot which just does it :)
Like I said, I agree :)
As far as I know it’s not a random point we display the hover label for, it’s the last one drawn which is the latest one in the trace IIRC.
I guess the proper workaround/fix for this also depends on the rendering mode? Is the main route to fixing this maybe through plotly.js?
Yes, this would be a feature we would need to add in the Javascript library that powers Plotly.py. It's been brought up in the past here: https://github.com/plotly/plotly.js/issues/4294
having the same problem. When can we expect this feature to come out ?
It's a good feature and we'd love to have it in the library but it's not on anyone's roadmap at the moment as far as I know. That said, we as maintainers would be happy to help someone from the community to implement it in Plotly.js, or to accept sponsorship to get it on to our short-term roadmap :)
ok great, thx for the information!
Any updates?
It would be great to add this feature
Yeah its odd this hasnt been added. It should be relatively straighforward...
Another bump hoping this is put on the roadmap - this seems like a very common occurrence for any type of plot.
I would love this feature also - this happens all the time with real data!
Same here, would be really great to have this feature for users not to lose information when using the graph
I would also really like this feature! Especially for mapping with Plotly.
Currently running into a situation where this would be a super nice feature. It's quite common that the data I'm working with overlaps on x,y and the data is small and discrete enough that adding jitter to resolve this wouldn't be appropriate.
I also had this problem. As a workaround, I introduced jitter. I couldn't get it working with plot_ly, but, thankfully I succeeded with ggplotly.
I know this question was asked regareding Python; I'm using R but it's the exact same problem. Here is my solution in R, hopefully it helps someone if it could be translated to Python!
Below are screenshots of the result, one with jitter and one without. You can see without jitter it is very grid-like, and the opacity/alpha of the dots is darker where there are overlaps. On the jitter version you can actually see all the dots, even though their location is no longer precise. Tradeoffs, eh!!
ggplotly(
ggplot(iris,
aes(x= Sepal.Length,
y= Sepal.Width,
text = paste("Petal Length: ", Petal.Length, "Petal Width: ", Petal.Width, sep="")
)
) +
geom_point(position="jitter", size=1,color="darkgreen", alpha=0.5)
)
This has been tested in version 4.7.1.
When hover information is shown for points e.g. in a scatter plot, the following situations can occur:
Hover information for all those multiple points should be shown, especially in cases where the hover information includes additional data not shown directly in the graph.
The hvPlot library does this correctly: it shows stacked hover boxes for all the data points under the cursor. Plotly only shows one hover box and it is not clear which one.
I think this is an actual bug since it makes it easy to miss data and the hover information does not represent the actual data in the graph.
Here is an example using the Iris data set and Plotly:
This shows:
With hvPlot: