Maple中点的正弦图

时间:2018-03-19 16:56:43

标签: plot visualization maple sine amplitude

我想在Maple中以点的形式创建一个正弦图的顶视图,这样最大高度显示为最接近的点,然后min显示最远的点。它可以是线而不是点。

Maple有可能吗?如果有人只知道如何在MATLAB中完成它,我也可以使用MATLAB。

我试过了:

plot3d(sin(x),linestyle=dot);

这就是我得到的(我已经移动它以便它是顶视图):

Fig1

但我想要这样的事情:

Fig2

或者这个(与最大/分钟对齐的点下方的正弦图):

Fix3

2 个答案:

答案 0 :(得分:1)

如果以下内容接近您的要求,那么您可以摆弄分发。 (例如,在低端获得更多的传播)

我不确定你是否尝试过3D视图的顶视图,因为这是你想要的,或者因为它是获得2D绘图之类的东西的一种方式。所以我会做两件事。

根据你的图像,它看起来像你不想要一个y值等距的序列。如果情况不是这样,请告诉我们。

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]
);

enter image description here

# 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]);

enter image description here

您还可以调整或删除刻度线,y范围,颜色等。

[更新]我不确定后续请求是针对堆叠的2D或3D绘图。这是2D中的东西。

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]]
);

enter image description here

答案 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

结果:

result

更新:

已经为构造点创建了正弦波,因此只需要很小的调整就可以将正弦添加到图中:

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

给出了

result with sine