0

This code was working (at least in 2022):

pz(x,y,z) := z*exp(-sqrt(x^2 + y^2 + z^2)/2)$ wxplot3d(pz(0,y,z),[y,-10,10],[z,-10,10],[gnuplot_preamble,"set contour base;set cntrparam levels incremental -0.4,0.1,0.4;set nokey;"])$

Now with wxMaxima 23.12.0 and Maxima 5.47.0 the wxplot3d does not display the picture with a gnuplot error: invalid pm3d option set pm3d hidden3d 100 border lw 0.5 lt rgb "#000000" inside the maxoutxxxx.gnuplot file. With plot3d(.....) instead of wxplot3d(...) the same error is reported but in a separate window (aqua in my case) the plot is drawn. Is there any possibility to get the plot inline? Thank you very much.

7
  • That looks like an error from Gnuplot. Can you update your Gnuplot installation and try again? Commented Jan 22 at 20:26
  • With gnuplot 5.4 patchlevel 2 (2021-06-01) and patchlevel 4 (2022-07-10) there are no problem. The error is given by gnuplot 6.0 patchlevel 2 (2024-12-19). The instructions for gnuplot are however generated by Maxima. Looking around I found this bug: [Maxima-bugs] [maxima:bugs] #4297 plot3d() error with Gnuplot 6. Commented Jan 23 at 10:25
  • Yes, I think that's the problem. Although there are ways to build the current version of Maxima, that approach is impractical for many users, so I think probably the path forward is for us (Maxima developers) to get a new version of Maxima released. I am currently working with another developer on that. Commented Jan 23 at 17:57
  • 1
    @Robert Dodier: Gnuplot developer here - The option "set pm3d hidden3d <number>" was deprecated back in version 5.0 (2014). Versions 5.0 5.2 5.4 continued to accept (and ignore) it if configured with a backward-compatibility option. Leaving aside the question of whether gnuplot 6 should do the same, I wonder if someone (guess that might be me) should have a look at the full repertoire of gnuplot commands generated by Maxima in an attempt to catch anything else that might be outdated. For instance in this case maybe Maxima should emit "set pm3d depthorder" instead (I'm not sure). Commented Jan 23 at 18:17
  • Thanks for your interest. For the time being to get the chart online I will use the commands of “draw”, i.e. wxdraw3d(explicit(pz(0,y,z),y,-10,10,z,-10,10),surface_hide=true,gexp,contour='both,contour_levels=[-0.4,0.1,0.4]); Commented Jan 24 at 13:58

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.