Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Bug Fix For "matplotlib eventplot not shows all the binary data for big number of events" - Draft PR#30053

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
ebubekir-pulat wants to merge8 commits intomatplotlib:main
base:main
Choose a base branch
Loading
fromebubekir-pulat:bug-fix-issue-20243

Conversation

ebubekir-pulat
Copy link

@ebubekir-pulatebubekir-pulat commentedMay 14, 2025
edited
Loading

** DRAFT PULL REQUEST **

closes#20243

This PR is a fix to the bug from Issue 20243. The bug concerns events being missing in graphs outputted by eventplot, when there is insufficient space for all events, for example when linelengths=1 and there is small screen space, and over 500 events to plot.

The fix involves a simple check to whether the number of events exceeds 200, and if the snap kwargs has not been set explicitly by the eventplot caller, and if so, turns off snapping, sets 'antialiaseds' to True, and outputs a warning letting them know snapping has been turned off due to high number of events, but they can override by manually setting snapping to True. Below (Figure 1) is a screenshot showing how the fix should work.

Figure 1
image

I believe this is the appropriate fix for this issue, as Path Simplification does not appear to be the source of the bug, as shown below, where the code in Figure 2 was run, with a print statement in src/path_converters.h, after the initial if-statement in the PathSimplifier Class' vertex function, on the main branch, as shown in Figure 3. Despite the print statement, no prints were outputted into the terminal when running the code in Figure 2, as shown in the terminal output in Figure 4. This suggests that Path Simplification is not involved in the bug in#20243.

Figure 2
image

Figure 3
image

Figure 4
image

@rcomer
Copy link
Member

Hi@ebubekir-pulat I see you now have three draft PRs open. Do you need some help from us to get them ready for review? In general draft PRs tend to be ignored and assumed "work in progress" unless you tell us otherwise.

Thanks for your contributions!

@ebubekir-pulat
Copy link
Author

ebubekir-pulat commentedMay 14, 2025
edited
Loading

Thank you@rcomer for the response. Yes, I would like some advice on how to improve my pull requests to get them ready for merging. What should I write in my pull requests to clearly show I would like feedback, criticism etc?

@rcomer
Copy link
Member

@ebubekir-pulat we have some guidelines here to work through, but as it says, it doesn't have to be perfect. If you are stuck on something specific, do ask. If not, mark the PR ready for review when you have got it as ready as you can.

@melissawmmelissawm moved this toWaiting for author inFirst Time ContributorsMay 22, 2025
@ebubekir-pulatebubekir-pulat marked this pull request as ready for reviewMay 23, 2025 00:45
@ebubekir-pulat
Copy link
Author

ebubekir-pulat commentedMay 23, 2025
edited
Loading

I think this fix is good to go. Is there need for any changes to the documentation?

I think some changes to eventplot-related tests in test_axes.py, and the 'test_get_font_names' test in test_font_manager.py, might need to be made.

@rcomer
Copy link
Member

@ebubekir-pulat have a look at thetriage_tests.py script to help you review those image test failures and replace the reference images if appropriate.

The failure for test_get_font_names may just be a missing font on your system (I also get this failure locally) so I suggest to ignore it unless it also shows in the test output below.

@ebubekir-pulat
Copy link
Author

ebubekir-pulat commentedJun 5, 2025
edited
Loading

@rcomer Here are the results we got for the 3 failing image tests in test_axes.py.

eventplot.png
image

eventplot-expected.png
image

eventplot-failed-diff.png
image

test_eventplot_defaults.png
image

test_eventplot_defaults-expected.png
image

test_eventplot_defaults-failed-diff.png
image

test_eventplot_problem_kwargs.png
image

test_eventplot_problem_kwargs-expected.png
image

test_eventplot_problem_kwargs-failed-diff.png
image

Is there a certain range of RMS in the image test failures that is acceptable, so if it is within that, we can simply replace the reference images?

@oscargus
Copy link
Member

Can you please also show the resulting images? Most likely the scaling has changed a bit for some reason, but hard to say without seeing the new images (the expected ones are in the repo, so while it helps to have them visible for reference, the new ones are more relevant).

@oscargus
Copy link
Member

And after reading the code, no, the reason is that snapping is off. As@jklymak thought that snapping can be off here, it should be good to go. But please add the new images so that one see the actual effect of this.

@ebubekir-pulat
Copy link
Author

ebubekir-pulat commentedJun 5, 2025
edited
Loading

@oscargus Would the 'new image' for test_eventplot be 'eventplot.png' for example? If so, I have accordingly updated the above comment showing the image outputs

@oscargus
Copy link
Member

oscargus commentedJun 5, 2025
edited
Loading

That should be the correct ones, yes!

If you copy those to thelib/matplotlib/tests/baseline_images (plus correct subdirectorytest_YYY) and add them to the PR (overwrite the old ones), it should make it even simpler to compare as there are some tools for that in GitHub.

To me it seems like the new results are OK. In some situations the lines are bit blurred in the new one due to lack of snapping, but I think one can live with that. One should maybe add a note that the default has changed, but it can be discussed where that should be added. I'll ping@timhoffm as the API lead to have a say.

Edit: to summarize for Tim. Ifsnap is not provided foreventplot, it will now default toFalse (and antialiasing will be turned on). There is a warning, but that should maybe be rephrased as well.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@jklymakjklymakjklymak left review comments

At least 1 approving review is required to merge this pull request.

Assignees
No one assigned
Projects
Status: Waiting for author
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

matplotlib eventplot not shows all the binary data for big number of events
6 participants
@ebubekir-pulat@rcomer@oscargus@jklymak@melissawm@aniru-dh21

[8]ページ先頭

©2009-2025 Movatter.jp