Maple 中以点为单位的正弦图
Sine graph in dots in Maple
我想在 Maple 中以点为单位创建正弦图的顶视图,这样最大高度显示为距离最近的点,然后最小值显示为距离最远的点。它可以是线而不是点。
在 Maple 中可以吗?如果有人只知道如何在 MATLAB 中使用,我也可以使用 MATLAB。
我试过这个:
plot3d(sin(x),linestyle=dot);
这就是我得到的(我移动了它,使其成为顶视图):
但我想要这样的东西:
或这个(正弦图下方与 max/min 对齐的点):
如果以下内容接近您想要的内容,那么您可以 fiddle 分配。 (例如,在低端获得更多传播)
我不确定您是否尝试了 top-view 3D 图,因为这正是您想要的,或者因为这是获得类似 2D 图的一种方法。所以我两个都做。
根据你的图片,在我看来你不只是想要 y-values equi-spaced 的序列。如果情况并非如此,请告诉我们。
restart:
Mx:=Statistics:-RandomVariable(PDF=(x->(sin(x)^1+1.25)/2.25)):
My:=Statistics:-RandomVariable(Uniform(0,1)):
G2D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|w>;
end proc:
G3D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|w|map(sin,v)>;
end proc:
a,b := -5*Pi, 5*Pi:
plots:-display(
seq(plot(G2D(a..b, 150),style=point,
symbolsize=7,symbol=solidcircle),
i=0..1, 0.05),
view=[a..b, default],
tickmarks=[piticks,decimalticks]
);
# top view of 3D plot
plots:-pointplot3d(G3D(a..b, 3000),
color=black, symbolsize=7,
orientation=[-90,0,0],
view=[a..b, default, default],
tickmarks=[piticks,default,default]);
您还可以调整或删除刻度线、y-range、颜色等
[更新] 我不确定后续请求是针对堆叠的 2D 还是 3D 图。这是二维的东西。
restart:
Mx:=Statistics:-RandomVariable(PDF=(x->(sin(x)^1+1.25)/2.25)):
My:=Statistics:-RandomVariable(Uniform(0,4)):
G2D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|map(`+`,w,1)>;
end proc:
a,b := -5*Pi, 5*Pi:
plots:-display(
seq(plot(G2D(a..b, 150),style=point,
symbolsize=7,symbol=solidcircle),
i=0..1, 0.05),
plot(sin(x),x=a..b),
view=[a..b, default],
tickmarks=[piticks,[-1,1]]
);
以防万一您还需要 MATLAB 解决方案:
x = 0:2*pi/250:8*pi; % change '250' to change density
y = sin(x);
Y = arrayfun(@(ii) rand(1,round((y(ii)+1.2)*10)), (1:length(y)), 'UniformOutput', false); % floor and ceil also possible (changes density)
X = arrayfun(@(ii) x(ii)*ones(1,length(Y{ii})), (1:length(x)), 'UniformOutput', false);
figure;
hold on;
p=cellfun(@scatter,X,Y);
xlim([0 8*pi])
set(gca, 'Visible','off') % delete axis
for ii=1:length(p)
set(p(ii),'Marker', '.', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k'); % make black dots
end
结果:
更新:
已经为点的构造创建了正弦波,因此只需进行少量调整即可将正弦波添加到图中:
x = 0:2*pi/250:8*pi; % change '250' to change density
y = sin(x);
Y = arrayfun(@(ii) 2*rand(1,round((y(ii)+1.2)*10))+1.1, (1:length(y)), 'UniformOutput', false); % floor and ceil also possible (changes density)
X = arrayfun(@(ii) x(ii)*ones(1,length(Y{ii})), (1:length(x)), 'UniformOutput', false);
figure;
hold on;
p=cellfun(@scatter,X,Y);
hold on
plot(x,y)
xlim([0 8*pi])
set(gca, 'Visible','off') % delete axis
for ii=1:length(p)
set(p(ii),'Marker', '.', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k'); % make black dots
end
这给出了
我想在 Maple 中以点为单位创建正弦图的顶视图,这样最大高度显示为距离最近的点,然后最小值显示为距离最远的点。它可以是线而不是点。
在 Maple 中可以吗?如果有人只知道如何在 MATLAB 中使用,我也可以使用 MATLAB。
我试过这个:
plot3d(sin(x),linestyle=dot);
这就是我得到的(我移动了它,使其成为顶视图):
但我想要这样的东西:
或这个(正弦图下方与 max/min 对齐的点):
如果以下内容接近您想要的内容,那么您可以 fiddle 分配。 (例如,在低端获得更多传播)
我不确定您是否尝试了 top-view 3D 图,因为这正是您想要的,或者因为这是获得类似 2D 图的一种方法。所以我两个都做。
根据你的图片,在我看来你不只是想要 y-values equi-spaced 的序列。如果情况并非如此,请告诉我们。
restart:
Mx:=Statistics:-RandomVariable(PDF=(x->(sin(x)^1+1.25)/2.25)):
My:=Statistics:-RandomVariable(Uniform(0,1)):
G2D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|w>;
end proc:
G3D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|w|map(sin,v)>;
end proc:
a,b := -5*Pi, 5*Pi:
plots:-display(
seq(plot(G2D(a..b, 150),style=point,
symbolsize=7,symbol=solidcircle),
i=0..1, 0.05),
view=[a..b, default],
tickmarks=[piticks,decimalticks]
);
# top view of 3D plot
plots:-pointplot3d(G3D(a..b, 3000),
color=black, symbolsize=7,
orientation=[-90,0,0],
view=[a..b, default, default],
tickmarks=[piticks,default,default]);
您还可以调整或删除刻度线、y-range、颜色等
[更新] 我不确定后续请求是针对堆叠的 2D 还是 3D 图。这是二维的东西。
restart:
Mx:=Statistics:-RandomVariable(PDF=(x->(sin(x)^1+1.25)/2.25)):
My:=Statistics:-RandomVariable(Uniform(0,4)):
G2D:=proc(r::range(realcons), N::posint)
local v,w;
v:=Vector[column](Statistics:-Sample(Mx,N,
method=[envelope,updates=300,range=r]));
w:=Vector[column](Statistics:-Sample(My,N));
<v|map(`+`,w,1)>;
end proc:
a,b := -5*Pi, 5*Pi:
plots:-display(
seq(plot(G2D(a..b, 150),style=point,
symbolsize=7,symbol=solidcircle),
i=0..1, 0.05),
plot(sin(x),x=a..b),
view=[a..b, default],
tickmarks=[piticks,[-1,1]]
);
以防万一您还需要 MATLAB 解决方案:
x = 0:2*pi/250:8*pi; % change '250' to change density
y = sin(x);
Y = arrayfun(@(ii) rand(1,round((y(ii)+1.2)*10)), (1:length(y)), 'UniformOutput', false); % floor and ceil also possible (changes density)
X = arrayfun(@(ii) x(ii)*ones(1,length(Y{ii})), (1:length(x)), 'UniformOutput', false);
figure;
hold on;
p=cellfun(@scatter,X,Y);
xlim([0 8*pi])
set(gca, 'Visible','off') % delete axis
for ii=1:length(p)
set(p(ii),'Marker', '.', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k'); % make black dots
end
结果:
更新:
已经为点的构造创建了正弦波,因此只需进行少量调整即可将正弦波添加到图中:
x = 0:2*pi/250:8*pi; % change '250' to change density
y = sin(x);
Y = arrayfun(@(ii) 2*rand(1,round((y(ii)+1.2)*10))+1.1, (1:length(y)), 'UniformOutput', false); % floor and ceil also possible (changes density)
X = arrayfun(@(ii) x(ii)*ones(1,length(Y{ii})), (1:length(x)), 'UniformOutput', false);
figure;
hold on;
p=cellfun(@scatter,X,Y);
hold on
plot(x,y)
xlim([0 8*pi])
set(gca, 'Visible','off') % delete axis
for ii=1:length(p)
set(p(ii),'Marker', '.', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k'); % make black dots
end
这给出了