Function 在Mathematica中在y轴上绘图

Function 在Mathematica中在y轴上绘图,function,wolfram-mathematica,plot,Function,Wolfram Mathematica,Plot,我还有一个关于Wolfram Mathematica的问题。是否有人知道如何在y轴上绘制图形 我希望这个数字能有所帮助 ParametricPlot[{5 Sin[y], y}, {y, -2 \[Pi], 2 \[Pi]}, Frame -> True, AxesLabel -> {"x", "y"}] 编辑 到目前为止,所有给出的答案都不能与Plot的填充选项一起使用。在这种情况下,Plot的输出包含一个GraphicsComplex(

我还有一个关于Wolfram Mathematica的问题。是否有人知道如何在y轴上绘制图形

我希望这个数字能有所帮助

ParametricPlot[{5 Sin[y], y}, {y, -2 \[Pi], 2 \[Pi]}, 
                Frame -> True,  AxesLabel -> {"x", "y"}]


编辑

到目前为止,所有给出的答案都不能与Plot的
填充选项一起使用。在这种情况下,Plot的输出包含一个
GraphicsComplex
(顺便说一句,它破坏了Mr.Wizard的替换)。要获得填充功能(对于没有填充的标准绘图,它不起作用),可以使用以下方法:

Plot[Sin[x], {x, 0, 2 \[Pi]}, Filling -> Axis] /.  List[x_, y_] -> List[y, x]


一种可能性是使用如下
参数图:

ParametricPlot[
  {-y*Exp[-y^2], y}, {y, -0.3, 4},
  PlotRange -> {{-2, 2}, All},
  AxesLabel -> {"x", "y"},
  AspectRatio -> 1/4
]
只是为了好玩:

轮廓图是另一种选择。 使用Thies函数:

ContourPlot[-y*Exp[-y^2/2] - x == 0, 
            {x, -2, 2}, {y, 0, 4}, 
            Axes -> True, Frame -> None]

区域图是另一种

RegionPlot[-y*Exp[-y^2/2] > x,
           {x, -2.1, 2.1}, {y, -.1, 4.1}, 
           Axes -> True, Frame -> None, PlotStyle -> White, 
           PlotRange -> {{-2, 2}, {0, 4}}]

最后,使用
ListCurvePathPlot
Solve
实现一种真正的复杂的方法:

Off[Solve::ifun, FindMaxValue::fmgz];

ListCurvePathPlot[
 Join @@
  Table[
        {x, y} /. Solve[-y*Exp[-y^2/2] == x, y],
   {x, FindMaxValue[-y*Exp[-y^2/2], y], 0, .01}],
 PlotRange -> {{-2, 2}, {0, 4}}]

On[Solve::ifun, FindMaxValue::fmgz];

离题

Sjoerd的答案
到目前为止给出的答案都不能与Plot的填充选项配合使用

答复:没有必要

f={.5 Sin[2 y],Sin[y]};
RegionPlot[Min@f<=x<=Max@f,{x,-1,1},{y,-0.1,2.1 Pi},
  Axes->True,Frame->None,
  PlotRange->{{-2,2},{0,2 Pi}},
  PlotPoints->500] 
f={.5sin[2y],Sin[y]};
区域图[Min@fNone,
PlotRange->{-2,2},{0,2 Pi},
绘图点->500]

使用
反向打印后,您可以翻转轴:

g = Plot[Sin[x], {x, 0, 9}];

Show[g /. x_Line :> Reverse[x, 3], PlotRange -> Automatic]

稍作修改后,这也适用于使用
填充的绘图:

g1 = Plot[{Sin[x], .5 Sin[2 x]}, {x, 0, 2 \[Pi]}];
g2 = Plot[{Sin[x], .5 Sin[2 x]}, {x, 0, 2 \[Pi]}, Filling -> {1 -> {2}}];

Show[# /. x_Line | x_GraphicsComplex :> x~Reverse~3,
     PlotRange -> Automatic] & /@ {g1, g2}

(用
MapAt[#~Reverse~2&,x,1]
替换
:>
的RHS可能更可靠)


作为一项功能 这是我推荐的一种用法。它包括翻转原始的
PlotRange
,而不是强制执行
PlotRange->All

axisFlip = # /. {
   x_Line | x_GraphicsComplex :> 
      MapAt[#~Reverse~2 &, x, 1], 
   x : (PlotRange -> _) :>
      x~Reverse~2 } &;
要像这样使用:
axisFlip@g1
axisFlip@{g1,g2}


使用
旋转可以产生不同的效果:

Show[g /. x_Line :> Rotate[x, Pi/2, {0,0}], PlotRange -> Automatic]

根据您希望轴标签的显示方式,您可以将原始绘图的代码包装到旋转函数中

@Thies外面是一片丛林;-)@而且,显然,成为第一名(即使只有2分钟)也无济于事。你的被接受了。@Sjoerd我知道函数反向工程技术总有一天会派上用场;)我已经投了这个票,所以我不能再投了,但很好的更新@Sjoerd在我的Lebesgue规则中小心避免的区域测量值为零。如果您需要
填充
选项,我会更新我的答案。我也考虑过
区域绘图
,但其语法不同于
绘图
,而且更复杂。更熟悉的是,可以简单地添加:
Filling->True
@True先生!但这只是一个小笑话,我们正在享受与Sjoerd:)是的@mr.Wizard,不要破坏我们的乐趣。这是我们的斗智斗勇。@Sjoerd你不应该嘲笑我的努力。我现在正在探索
AxesStyle->Thickness[.1]
,结果非常好+1我觉得包含填充的版本应该是最终的答案。旋转版本的错误与Alexey的相同:y的符号错误。
Show[g /. x_Line :> Rotate[x, Pi/2, {0,0}], PlotRange -> Automatic]