mathematica如何设置这种坐标轴?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mathematica如何设置这种坐标轴?相关的知识,希望对你有一定的参考价值。
只会作图二这种均匀坐标轴,如何作出图一中横坐标刻度非均匀的坐标轴?
函数Ticks 可以控制坐标轴刻度,那就举个简单地例子来说明一下。
Plot[Sin[x], x, 0, 2*Pi, Ticks -> 0, 0, \\[Pi]/4, 45 \\[Degree], \\[Pi]/2, 90 \\[Degree], (3 \\[Pi])/4, 135 \\[Degree], \\[Pi], 180 \\[Degree], (5 \\[Pi])/4, 225 \\[Degree], (3 \\[Pi])/2, 270 \\[Degree], (7 \\[Pi])/4, 315 \\[Degree], 2 \\[Pi], 360 \\[Degree], Automatic]
追问
你没看清问题啊,我要的不是标出指定刻度,而是改变坐标轴(非均匀坐标轴)。ticks只是标出了指定位置的刻度,坐标轴总体仍是均匀的。我给的图里只有非均匀坐标轴才能显示出三曲线的变化关系,为了把问题描述的更清楚,我还把图2均匀坐标轴的图像放上作对比。我要的是图1的结果,通俗来说,图上1到5刻度间的距离比10到100的距离还要长,这才是我想要的,而不是仅仅标出这几个刻度。我表述清楚没有?
参考技术A 函数Ticks 可以控制坐标轴刻度,那就举个简单地例子来说明一下。Plot[Sin[x], x, 0, 2*Pi, Ticks -> 0, 0, \[Pi]/4, 45 \[Degree], \[Pi]/2, 90 \[Degree], (3 \[Pi])/4,...Mathematica图形化三维坐标系的建立
背景
某些情况下(如在三维绘图),需要绘制系统坐标系。
首先来看一下三维迪卡尔坐标系的组成:坐标原点(0,0,0)
,带箭头的坐标轴,坐标轴标签。因此在绘制坐标系时,需要绘制这些元素。
Mathematica实现
coordinateSystem3D = {
{RGBColor[{1, 0, 0}], Arrowheads[0.05], Arrow[Tube[{{0, 0, 0}, {1, 0, 0}}, 0.01]],
Text[Style["X", FontSize -> 16,
FontFamily -> "Arial Baltic"], {1.1, 0, 0}]},
{RGBColor[{0, 1, 0}], Arrowheads[0.05], Arrow[Tube[{{0, 0, 0}, {0, 1, 0}}, 0.01]],
Text[Style["Y", FontSize -> 16,
FontFamily -> "Arial Baltic"], {0, 1.1, 0}]},
{RGBColor[{0, 0, 1}], Arrowheads[0.05], Arrow[Tube[{{0, 0, 0}, {0, 0, 1}}, 0.01]],
Text[Style["Z", FontSize -> 16,
FontFamily -> "Arial Baltic"], {0, 0, 1.1}]}};
如果无需标签(x、y、z轴的颜色依次是红、绿、蓝),可一行代码搞定
frame3D = {RGBColor[#], Arrowheads[0.05], Arrow@Tube[{{0, 0, 0}, #}, 0.01]} & /@ IdentityMatrix[3];
Graphics3D[frame3D]
实际上,MMA功能强大,使用灵活,实现同一功能有不同的方法(函数),上述有标签的坐标系也可以使用MapThread函数实现
(*使用MapThread函数实现*)
f[i_, t_, p_] := {RGBColor[i], Arrowheads[0.05], Arrow@Tube[{{0, 0, 0}, i}, 0.01], Text[Style[t, FontSize -> 16], p]}
frame3D = MapThread[ f, {{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}, {"X", "Y", "Z"}, {{1.1, 0, 0}, {0, 1.1, 0}, {0, 0, 1.1}}}];
Graphics3D[frame3D]
上述无标签的坐标系也可以使用Table函数实现
(*使用Table函数实现*)
frame3D =
Table[{RGBColor[i], Arrowheads[0.05], Arrow@Tube[{{0, 0, 0}, i}, 0.01]}, {i, {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}}]
Graphics3D[frame3D]
效果一样,已经通过测试。
以上是关于mathematica如何设置这种坐标轴?的主要内容,如果未能解决你的问题,请参考以下文章