gpt4 book ai didi

plot - 在 Maxima 中显示 3D 功能的有组织的自上而下 View

转载 作者:行者123 更新时间:2023-12-04 08:02:38 25 4
gpt4 key购买 nike

我在数学网站上问过,有人告诉我在这里问这个。
我正在尝试使用 Maxima 来显示 3D 函数的自上而下 View ,函数的不同值(高度/深度)将使用 Maxima 自动提供的一系列颜色和颜色条显示。
使用 this website我能够为函数的自顶向下 View 组合一些代码(在我决定省略之前的代码,因为它只是 load(draw)$ 和函数本身):

wxdraw3d(
enhanced3d=true, explicit(f(y,x,15,400,1),y,0,100,x,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,15,400,1)"
);
这给出了以下情节:
Which gives the following plot
正如你所看到的,情节有几个问题:
  • 颜色条没有标签,它将使用当前的 z-label
  • 垂直轴(标签、数字和分割)应位于左侧
  • 水平轴的分割应在底部
  • 地块上的所有分割都应出现在上方而不是下方
  • 应该调整边框的大小,以便没有任何东西被切断或重叠(引用输出周围的黑色边框,图像是边框内部的裁剪)

  • 我尝试了来自 this website 的另一种方法使用最底部的 gnuplot 代码给出这个修改后的代码:
    plot3d(
    f(x,y,15,400,1),[x,0,100],[y,20,30],
    [elevation,0],
    [grid,100,100],
    [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,2)
    );
    user_preamble= 中编写的命令似乎在实际 gnuplot 之前执行 splot命令。因此,它们可以覆盖以前的设置。
    命令 set cblabel设置颜色框的标签。我添加了一个小的偏移量以避免标签太近。
    我懒得理解你的功能 :) 所以我画了另一个。
    这是结果:
    result

    更新以改善您评论中的图片
    result
    Gnuplot 有时在估计文本大小时会出现问题。这可能会导致丑陋的图表。您可以通过手动调整偏移量和大小来提高输出。
    命令 set size更改完整图像中的绘图区域。这可用于为右侧的颜色框标签留出一些空间。 set ylabel命令接受 offset .我们将这两个命令放入 user_preamblewxdraw3d :
    wxdraw3d(
    user_preamble=[
    "set cblabel 'Gap distance (m)' offset screen 0.01, 0",
    "set ylabel offset screen -0.01,0",
    "set size 0.9,1"
    ],
    view=map,
    enhanced3d=true,
    ...
    );
    使用所有偏移量和大小数字,直到它们适合为止。

    关于plot - 在 Maxima 中显示 3D 功能的有组织的自上而下 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66378916/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com