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

Metaticket - Proposed changes to julia_plot #28923

Open
DaveWitteMorris opened this issue Dec 29, 2019 · 8 comments
Open

Metaticket - Proposed changes to julia_plot #28923

DaveWitteMorris opened this issue Dec 29, 2019 · 8 comments

Comments

@DaveWitteMorris
Copy link
Member

This metaticket lists proposed (or completed) changes to the julia_plot function.

  • Generalize to all polynomials (done). Plotting Julia Sets for General Polynomials #23740 generalizes julia_plot to all polynomials, instead of only the usual quadratic polynomial z^2 + c.

  • Deprecation notice (won't fix). In order to make the generalization, Plotting Julia Sets for General Polynomials #23740 changes the interface of julia_plot to be keyword based. Shouldn't this backwards-incompatible change have a deprecation notice? (If so, it would be good to get this deprecation into the 9.0 release.) I have opened ticket Deprecation notice for change to interface of julia_plot #28924 for this.

  • Bug fix: correct escape radius. As explained in julia_plot sometimes does not draw the entire julia set #28557, the algorithm in julia_plot uses a faulty calculation of the escape radius, so many plots do not show the entire Julia set. The patch in julia_plot sometimes does not draw the entire julia set #28557 fixes this mistake for the special case of quadratic polynomials, but the correction needs to be extended to other polynomials.

  • Documentation correction. The documentation says that julia_plot plots a Julia set, but it actually plots the filled Julia set. The docstrings should be fixed.

  • Restore simple interface for quadratic polynomials. The new interface (created by gh-aodesky) in Plotting Julia Sets for General Polynomials #23740 is generally an improvement, but I think we should retain a very simple interface for plotting the filled Julia set of z^2 + c, which is all that most users will want. I propose to replace julia_plot with a function julia_set_plot(c) to plot the filled Julia set of z^2 + c (using an optimized algorithm), and a separate function julia_set_of_polynomial_plot for the general polynomials covered by Plotting Julia Sets for General Polynomials #23740. The new functions will be experimental, in order to allow for continuing development in the next few weeks.

  • Allow matplotlib colormaps. The plot routines should be enhanced to utilize matplotlib colormaps, instead of only interpolating a color gradient between base_color and white. (In addition, the user should be able to choose the color of the filled Julia set, instead of being required to use black.) These options should also be provided for plots of the Mandelbrot set.

  • Allow close-ups of Mandelbrot set. Instead of always plotting the entire Mandelbrot set, the user should be allowed to choose a plot window that shows a small region near the selected value of c.

  • Utilize matplotlib. In order to make axes and other options available to the user, perhaps the plot routines should be modified to use matplotlib (instead of directly creating a png file).

  • Click to choose Julia set. In a notebook interface, it would be great to be able to click on a point in the picture of the Mandelbrot set, to get a plot of the corresponding filled Julia set.

Component: dynamics

Keywords: Julia set

Author: Dave Morris

Issue created by migration from https://trac.sagemath.org/ticket/28923

@DaveWitteMorris

This comment has been minimized.

@DaveWitteMorris

This comment has been minimized.

@DaveWitteMorris DaveWitteMorris modified the milestones: sage-9.0, sage-9.1 Dec 30, 2019
@mkoeppe
Copy link
Member

mkoeppe commented Apr 14, 2020

comment:3

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.1, sage-9.2 Apr 14, 2020
@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Sep 5, 2020
@mkoeppe
Copy link
Member

mkoeppe commented Feb 13, 2021

comment:5

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@sagetrac-tmonteil
Copy link
Mannequin

sagetrac-tmonteil mannequin commented Oct 1, 2021

comment:7

Let me add a comment here, since i am not sure if i should open a ticket. I see no difference between julia_plot(interact=True) and julia_plot(), i just get a static image with a Julia set on the left and a Mandelbrot set on the right. What interaction are we supposed to see ? Sliders ? Input boxes ? Clicking on the image ?

@DaveWitteMorris
Copy link
Member Author

comment:8

Thanks for the bug report. We're supposed to get some sliders (and also two color-choosers), but it doesn't work for me either. Please try:

R.<z> = CC[]
f = z^2 + 1/2
julia_plot(f,interact=True)

This works for me (in a jupyter notebook or on CoCalc).

@DaveWitteMorris
Copy link
Member Author

comment:9

I take it back: julia_plot(interact=True) is working for me now, both in a jupyter notebook on Mac OS 11.5.2 and in CoCalc.

@sagetrac-tmonteil
Copy link
Mannequin

sagetrac-tmonteil mannequin commented Oct 2, 2021

comment:10

This is pretty weird, on my side also, sometimes it works, sometimes no, but i could not guess what triggers the issue.

@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Apr 1, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants