gpt4 book ai didi

wolfram-mathematica - 获取手动绘制点的坐标

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

作为执行 ListPlot[] 函数的结果,我有一个图表。
我可以通过将点移动到不同的位置来手动编辑此图形
并使用 Drawing Tools 添加新点。

如何从编辑的图形中获取新点和更改点的坐标?

最佳答案

这种方法使每个数据点都成为可以移动的定位器。可以根据需要添加新定位器并删除旧定位器。每次更改后都会更新最佳拟合和方差。

这是一些指数增长的数据,但有一些错误和数据点缺失

data = Delete[Table[{t, (1 + RandomReal[{-.2, .2}])Exp[t]}, {t, 0, 2, .2}], 6];

一个小格式化命令:
nForm = NumberForm[#, {2, 2}, NumberPadding -> {"", "0"}] &;

最后,这是制作可操作图形的代码。 New locators/data points are added 使用 Alt-Click (或 Ctrl-Alt-Click 在 linux 上)。如果单击左侧的点列表,则会打开一个包含输入表单中的点的新窗口。
Manipulate[
LocatorPane[Dynamic[pts, {None, Temporary, Automatic}],
nlm = Block[{a,b,t}, NonlinearModelFit[Sort[pts], a Exp[t] + b, {a, b}, t]];
Show[Plot[{Exp[t], nlm[t]}, {t, 0, 2},
PlotStyle -> {{Thick, LightGray}, Dotted}, PlotRangePadding -> Scaled[0.1]],
ListPlot[data, PlotStyle -> Blue], AxesLabel -> Block[{t,f}, {t, f[t]}]],
LocatorAutoCreate -> True, Appearance -> Style["\[CircleDot]", Red]],
{nlm, None}, {{pts, data}, None},
Dynamic[Pane[EventHandler[
nForm@Grid[Prepend[pts, {"x", "y"}], Dividers -> {False, 2 -> True}],
{"MouseClicked" :> (CreateDocument[{ExpressionCell[nlm["Data"], "Output"]},
WindowTitle -> "Data"])}], ImageSize -> {100, 250},
ImageSizeAction -> "Scrollable", Scrollbars -> {False, True}]],
Pane[Dynamic[nForm@Row@{nlm,Row[{"\tvariance = ",nlm["EstimatedVariance"]}]}]],
ControlPlacement -> {Left, Left, Left, Top}]

在上面,我使用定位器纠正了几个异常值并恢复了丢失的数据点。

关于wolfram-mathematica - 获取手动绘制点的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726317/

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