在 Maxima

如何解决在 Maxima

我在数学网站上问过,有人告诉我在这里问这个问题。

我正在尝试使用 Maxima 显示 3D 函数的自上而下视图,函数的不同值(高度/深度)将使用 Maxima 自动提供的一系列颜色和颜色条显示。

使用 this website 我能够为函数的自顶向下视图组合一些代码(在我决定省略之前的代码,因为它只是 load(draw)$ 和函数本身):

wxdraw3d(
enhanced3d=true,explicit(f(y,x,15,400,1),y,100,20,30),xu_grid=100,yv_grid=100,xyplane=0,view=[0,0],zrange=[0,50],zlabel="Gap distance (m)",xlabel="Gap number",ylabel="Initial velocity (ms^{-1})",title="f(n,u,1)"
);

给出以下情节:

Which gives the following plot

如您所见,情节存在几个问题:

  • 颜色条没有标签,会使用当前的 z-label
  • 垂直轴(标签、数字和细分)应在左侧
  • 水平轴的细分应在底部
  • 地块上的所有细分都应出现在上方而不是下方
  • 应该调整边框的大小,以便没有任何内容被切断或重叠(指的是输出周围的黑色边框,图像是边框内部的裁剪)

我使用最底部的 gnuplot 代码尝试了 this website 中的另一种方法,以提供此修改后的代码:

plot3d(
f(x,[x,100],[y,30],[elevation,[grid,[zlabel,"Gap length (m)"],[xlabel,"Gap number"],[ylabel,"Initial velocity (ms^{-1})"],[gnuplot_preamble,"set view map; unset surface"],[gnuplot_pm3d,true]
);

然而,这并没有奏效,因为它给出了 this plot。正如你所看到的,这比第一个情节有更多的问题。不仅没有第一张图那么清晰,而且和网站上的图几乎没有什么相似之处,信息较少,没有色条,没有编号的轴,一个恼人的网格,甚至颜色渐变也更糟。

对于我使用的第一个代码,我找不到任何关于标记颜色条的信息,只有范围、颜色本身以及它是打开还是关闭;并且我在轴标签的边框大小或定位等方面找不到任何内容。因此,尝试使用此代码是没有意义的,尤其是如果我让第一个代码正常工作时。考虑到绘图的大小,我尝试了 wxplot_size[],但这给出了错误“绘制:未知选项 [600,400]”,它似乎四舍五入到最接近的百位。

有什么方法可以修改第一个代码,使得颜色条被标记,垂直轴标记在另一侧,每个轴的小细分出现在图上,图之外的任何东西都没有被切断还是重叠?如果不可能将细分移动到情节上方,无论如何要删除它们?我对 Maxima 或 gnuplot 不太了解。

除了这些问题之外,其他一切似乎都很好,而且我不完全确定还有什么地方可以询问 Maxima。

解决方法

让我们修改 wxdraw3d 命令。

Maxima 写了一个 gnuplot 输入文件,然后由 gnuplot 加载,因此您可以检查 maxima 命令的影响。在我的系统 (Debian linux) 上,该文件位于我的主目录中,其名称类似于“~/maxout_28503.gnuplot”。

使用 gnuplot 命令 set view map 而不是 set view 0,0 可以解决大部分问题,对应于最大值命令 view=map 而不是 view=[0,0]

我还没有找到设置颜色框标签的“好”方法。我认为有一种极大的方式,因为默认情况下生成的 gnuplot 文件包含生成空标签的行 set cblabel ''。但是我们可以使用应用任何 gnuplot 设置的机制:user_preamble= ...

所以现在我们有以下内容:

wxdraw3d(
    user_preamble="set cblabel 'Gap distance (m)' offset screen 0.01,0;",view=map,enhanced3d=true,title="f(n,u,15,400,1)",xlabel="Gap number",ylabel="Initial velocity (ms^{-1})",zlabel="",explicit(x^2+y^2,x,-2,2,y,2)
);

user_preamble= 中编写的命令似乎在实际 gnuplot splot 命令之前执行。因此,它们可以覆盖以前的设置。

命令 set cblabel 设置颜色框的标签。我添加了一个小的偏移量以避免标签太近。

我懒得理解你的函数 :) 所以我画了另一个。

结果如下:

result


更新以改善评论中的图片

result

Gnuplot 有时在估计文本大小时会出现问题。这可能会导致丑陋的图表。您可以通过手动调整偏移量和大小来改善输出。

命令 set size 更改完整图像中的绘图区域。这可用于为右侧的颜色框标签留出一些空间。 set ylabel 命令接受 offset。我们将这两个命令放入 user_preamble 部分 wxdraw3d:

wxdraw3d(
    user_preamble=[
        "set cblabel 'Gap distance (m)' offset screen 0.01,0","set ylabel offset screen -0.01,"set size 0.9,1"
    ],...
);

使用所有偏移量和尺寸数字直到它们适合为止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res