Coder Social home page Coder Social logo

Comments (11)

helgasoft avatar helgasoft commented on May 18, 2024 2

Thank you for the detailed explanation. Just step 4 might be better defined as "zoom with mouse scroll wheel".
Indeed the selection area drag is able to refresh its content successfully. So I think the zoom bug may not be that difficult to fix ...if a brave & knowledgeable volunteer has time to dive in.

from echarts.

DespotMagic avatar DespotMagic commented on May 18, 2024

This also happens to me even if I only have 10,000 points. After any re-rendering, only a few of the originally selected ones remain.
And re-rendering begins to occur when you zoom in/zoom out or simply even if you click on any icon of the Toolbox panel.

from echarts.

helgasoft avatar helgasoft commented on May 18, 2024

official example has large:true and works fine. Any reason why you want to disable optimization with large ?

from echarts.

ilius33 avatar ilius33 commented on May 18, 2024

official example has large:true and works fine. Any reason why you want to disable optimization with large ?

Yes. The obvious reason. Brush selection doesn't work with large: true at all. I mean you can paint with brush selection tool. But with no effect. No data in event, no style changes.

from echarts.

helgasoft avatar helgasoft commented on May 18, 2024

ok, agree, related to #17079 and #9945
BTW all points seem to be showing (tooltip present), but some are not highlighted.

from echarts.

ilius33 avatar ilius33 commented on May 18, 2024

ok, agree, related to #17079 and #9945 BTW all points seem to be showing (tooltip present), but some are not highlighted.

Not highlighted and not present in event. BTW tried scatterGL and it is not supporting selection too. So basically there is no option to brushselect on large amount of data and have any perfomance option enabled.

from echarts.

helgasoft avatar helgasoft commented on May 18, 2024
  1. progressive re-rendering takes place

Looks like disabling progressive thru progressiveThreshold fixes the zoom problem - Demo.

So basically there is no option to brushselect on large amount of data and have any perfomance option enabled.

Agree.

from echarts.

DespotMagic avatar DespotMagic commented on May 18, 2024

Looks like disabling progressive thru progressiveThreshold fixes the zoom problem - Demo.

It is clear that this will solve the issue. Problems initially sounded like problems with progressive rendering. In your example there are 5000 points so it works well. In my application for example we need to display up to 100,000 points (or 150,000 points) and be able to select them and zoom in/zoom out this brush area. Performance for 100 000 points with progressive rendering is satisfactory, but the fact that the selected dots disappear during Zoom - this is a blocker for us.

In my opinion this is a progressive rendering error with brush area. Because if you move the selection area even just a little, all the points are immediately selected correctly. Also if I click on "Keep selections" and select additionally some empty area, it will also correct the currently selected brush area and display all the points correctly.
So these actions trigger some internal events of ECharts that force it to render the selected area correctly. And zoom does not trigger these processes during rendering (progressive rendering).

If we can’t fix it, then at least find what event needs to be dispatched after Zoom In/Out to force ECharts to render correctly all points in the selected area and get the correct list of selected points in "brushSelected" event.

from echarts.

helgasoft avatar helgasoft commented on May 18, 2024

...if you move the selection area even just a little, all the points are immediately selected correctly.

@DespotMagic, frankly I cannot reproduce your findings.
What would be helpful is to update the Demo (more data, add dataZoom?) and explain the steps on how to reproduce the problem.

from echarts.

DespotMagic avatar DespotMagic commented on May 18, 2024

@DespotMagic, frankly I cannot reproduce your findings. What would be helpful is to update the Demo (more data, add dataZoom?) and explain the steps on how to reproduce the problem.

@helgasoft thank you for trying to help) This can be easily reproduced using the example from ilius33 #19857 (comment). We are taking the same steps that ilius33 indicated. And then we just move (drag) the area with the mouse.

Steps:

  1. jump to minimum example
  2. enable selection tool
  3. select some points
  4. zoom or select another selection tool
  5. AR: only few points remain selected (current problem described in this bug)
  6. move (drag) the selected area with the mouse
  7. AR: All points within brushed zones remain selected 👌.

Example for 100,000 points on video
There you can see the problem: how the points are not rendered after Zoom. and how everything rendered corrected (all selected points) if I drag the selection area a little.

from echarts.

helgasoft avatar helgasoft commented on May 18, 2024

On reflection and looking from a different perspective - zoom and brush seem to be completely unrelated actions in ECharts.
As seen in the example, selected area size does not change on zoom. But it should, if zoom and brush-select were integrated!
My guess is that brush-select is pixel(canvas) based, and zoom is based on chart coordinates, so they are incompatible.
Brush-select is also an isolated, singular event and its result does not persist in further chart manipulations like pan and zoom.

from echarts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.